DIR : /home/kozerus/public_html/dgs/include/globals.php
/home/kozerus/public_html/dgs/include
<?php
/*
Dragon Go Server
Copyright (C) 2001- Erik Ouchterlony, Jens-Uwe Gaspar
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require_once 'include/config-local.php';
/*!
* \file globals.php
*
* \brief Definitions and declarations of DGS globally used vars and constants.
*/
define('DGS_VERSION', '1.20.5'); // ARCHITECTURE(1=php).MAJOR.MINOR
define('CSS_VERSION', '20190103173000'); // take UTC-timestamp of skins/dragon/screen.css
define('JS_VERSION', '20200522161500'); // take UTC-timestamp of newest js/*.js script
// global version of quick-suite: increased with each release
define('QUICK_VERSION', 14);
define('QUICK_SUITE_VERSION', DGS_VERSION.':'.QUICK_VERSION);
// ---------- General stuff----------------------------------------
// preserve protocol http|https in main-URL HOSTBASE
define('HOSTBASE', ( @$_SERVER['HTTPS'] ? 'https://' : 'http://' ) . HOSTNAME . SUB_PATH);
define('NO_VALUE', '---');
define('UNKNOWN_VALUE', '???');
define('MINI_SPACING', ' ');
define('MED_SPACING', ' ');
define('SMALL_SPACING', ' ');
define('SEP_SPACING', SMALL_SPACING.'|'.SMALL_SPACING);
define('DASH_SPACING', SMALL_SPACING.'-'.SMALL_SPACING);
define('SEP_MEDSPACING', MED_SPACING.'|'.MED_SPACING);
define('COUNTNEW_RECALC', 'recalc');
define('SGF_MAXSIZE_UPLOAD', 200*1024); // bytes
// ---------- Clock stuff -----------------------------------------
define('VACATION_CLOCK', -1); // keep it < 0
define('GAME_CLOCK', 30);
define('GAME_WEEKEND_CLOCK', 40);
define('CLOCK_CRON_TICK', 201);
define('CLOCK_CRON_HALFHOUR', 202);
define('CLOCK_CRON_DAY', 203);
define('CLOCK_TIMELEFT', 204); // 5min-tick
define('CLOCK_CRON_TOURNEY', 205);
define('CLOCK_CRON_TOURNEY_DAILY', 206);
define('CLOCK_CRON_TOURNEY_HOURLY', 207);
define('CLOCK_CRON_HOUR', 208);
define('MAX_CLOCK', 208);
define('CLOCK_TOURNEY_GAME_WAIT', CLOCK_TIMELEFT); // 5min-tick
// ---------- Games stuff -----------------------------------------
define('GAME_STATUS_KOMI', 'KOMI'); // fair-komi negotiation
define('GAME_STATUS_SETUP', 'SETUP'); // setup for multi-player-games
define('GAME_STATUS_INVITED', 'INVITED');
define('GAME_STATUS_PLAY', 'PLAY');
define('GAME_STATUS_PASS', 'PASS');
define('GAME_STATUS_SCORE', 'SCORE');
define('GAME_STATUS_SCORE2', 'SCORE2');
define('GAME_STATUS_FINISHED', 'FINISHED');
define('CHECK_GAME_STATUS', 'KOMI|SETUP|INVITED|PLAY|PASS|SCORE|SCORE2|FINISHED');
define('CHECK_GAME_STATUS_RUNNING', 'PLAY|PASS|SCORE|SCORE2');
define('CHECK_GAME_STATUS_STARTED', 'KOMI|PLAY|PASS|SCORE|SCORE2');
//keep next constants powers of 2
define('GAMEFLAGS_KO', 0x01);
define('GAMEFLAGS_HIDDEN_MSG', 0x02);
define('GAMEFLAGS_ADMIN_RESULT', 0x04);
define('GAMEFLAGS_TG_DETACHED', 0x08);
define('GAMEFLAGS_ATTACHED_SGF', 0x10);
define('GAMEFLAGS_NO_RESULT', 0x20);
define('GAMEFLAGS_SECRET_MSG', 0x40);
// enum Games.GameType
define('GAMETYPE_GO', 'GO');
define('GAMETYPE_TEAM_GO', 'TEAM_GO');
define('GAMETYPE_ZEN_GO', 'ZEN_GO');
define('CHECK_GAMETYPE', 'GO|TEAM_GO|ZEN_GO');
//Games table: particular Score values
define('SCORE_RESIGN', 1000);
define('SCORE_TIME', 2000);
define('SCORE_FORFEIT', 3000);
define('SCORE_MAX', min(SCORE_RESIGN,SCORE_TIME,SCORE_FORFEIT) - 1); // =min(SCORE_...) - 1
// see Games/Waitingroom/TournamentRules.Ruleset, see also specs/db/table-Waitingroom.txt
define('RULESET_JAPANESE', 'JAPANESE'); // using area-scoring
define('RULESET_CHINESE', 'CHINESE'); // using territory-scoring
define('CHECK_RULESETS', 'JAPANESE|CHINESE');
// game-settings view-mode
define('GSETVIEW_STANDARD', 0);
define('DEPRECATED_GSETVIEW_EXPERT', 1); // deprecated: merged with std-view -> migrate to 0
define('GSETVIEW_MPGAME', 2); // multi-player
define('GSETVIEW_FAIRKOMI', 3);
define('CHECK_GSETVIEW', '0|2|3');
define('REMATCH_INVITE', 1);
define('REMATCH_NEWGAME', 2);
define('MAX_SEKI_MARK', 2);
//----- Board array
define("NONE", 0); //i.e. DAME, Moves(Stone=NONE,PosX/PosY=coord,Hours=0)
define("BLACK", 1);
define("WHITE", 2);
define('STONE_TD_ADDTIME', -1); //dummy-val (not stored in DB)
define("OFFSET_TERRITORY", 0x04); //keep it a power of 2
define("DAME", OFFSET_TERRITORY+NONE);
define("BLACK_TERRITORY", OFFSET_TERRITORY+BLACK);
define("WHITE_TERRITORY", OFFSET_TERRITORY+WHITE);
define("OFFSET_MARKED", 0x08); //keep it a power of 2
define("MARKED_DAME", OFFSET_MARKED+NONE);
define("BLACK_DEAD", OFFSET_MARKED+BLACK);
define("WHITE_DEAD", OFFSET_MARKED+WHITE);
define("FLAG_NOCLICK", 0x10); //keep it a power of 2
//----- Board(end)
// game-actions
// NOTE: don't change values to keep compatibility with old dgs-clients using confirm-page directly
define('GAMEACT_DELETE', 'delete');
define('GAMEACT_DO_MOVE', 'domove');
define('GAMEACT_PASS', 'pass');
define('GAMEACT_RESIGN', 'resign');
define('GAMEACT_SCORE', 'done');
define('GAMEACT_SET_HANDICAP', 'handicap');
// ---------- Conditional Moves -----------------------------------
define('MSEQ_STATUS_INACTIVE', 'INACTIVE');
define('MSEQ_STATUS_ACTIVE', 'ACTIVE');
define('MSEQ_STATUS_ILLEGAL', 'ILLEGAL');
define('MSEQ_STATUS_OPP_MSG', 'OPP_MSG');
define('MSEQ_STATUS_DEVIATED', 'DEVIATED');
define('MSEQ_STATUS_DONE', 'DONE');
define('CHECK_MSEQ_STATUS', 'INACTIVE|ACTIVE|ILLEGAL|OPP_MSG|DEVIATED|DONE');
// ---------- Folder & Message stuff ------------------------------
// folder for "destroyed" messages (former was: Folder_nr=NULL)
// '-4'-value in regard to FOLDER_DELETED and to keep < FOLDER_NONE
define('FOLDER_DESTROYED', -4);
// value to specify to move message, but only from REPLY- to MAIN-folder
define('MOVEMSG_REPLY_TO_MAIN_FOLDER', -2); // keep as folder-values
define('FOLDER_NONE', -1); // pseudo-folder used for "selecting no folder"
define('FOLDER_ALL_RECEIVED', 0); // pseudo-folder-nr to check for valid-folders
//Valid folders must be > FOLDER_ALL_RECEIVED
define('FOLDER_MAIN', 1);
define('FOLDER_NEW', 2);
define('FOLDER_REPLY', 3);
define('FOLDER_DELETED', 4); // Trashcan-folder
define('FOLDER_SENT', 5);
//User folders must be >= USER_FOLDERS
define('USER_FOLDERS', 6);
define('MSGTYPE_NORMAL', 'NORMAL');
define('MSGTYPE_INVITATION', 'INVITATION'); // invitation, new or by disputing
define('MSGTYPE_DISPUTED', 'DISPUTED'); // former INVITATION-type message being answered with dispute
define('MSGTYPE_RESULT', 'RESULT');
// message-flags 8 bits: 0xff
define('MSGFLAG_BULK', 0x01); // multi-receiver (bulk) message
define('MSGFLAG_DELETE', 0x80); // mark message as candidate for deletion for cleanup
// ---------- Filter stuff ----------------------------------------
define('FNAME_REQUIRED', 'sf_req'); // comma-separated list of required filters (id or name); not included in SearchProfile!!
define('REQF_URL', URI_AMP.FNAME_REQUIRED.'='); // prepared URL-part for appending to require certain filters
// search-profile: enforce no-default-profile-loading
define('SP_ARG_NO_DEF', 'sp_nodef');
define('SPURL_NO_DEF', URI_AMP.SP_ARG_NO_DEF.'=1');
// ---------- Rating stuff ----------------------------------------
define('MAX_START_RATING', 2600); //6 dan
define('MAX_ABS_RATING', 3000); //10 dan
define('MIN_RATING', -900); //30 kyu
define('OUT_OF_RATING', 9999); //ominous rating bounds: [-OUT_OF_RATING,OUT_OF_RATING]
define('NO_RATING', -OUT_OF_RATING);
define('RATING_9DAN', 2900); //9 dan (selectable max-rating)
// Players.RatingStatus
define('RATING_NONE', 'NONE'); // no rating set
define('RATING_INIT', 'INIT'); // rating set, but can be changed (no rated games yet)
define('RATING_RATED', 'RATED'); // rating established (rated game exists)
// rating-graph
define('MAX_WMA_TAPS', 50); // moving average
// ---------- User stuff ------------------------------------------
// Contacts.SystemFlags (bitmask for database): 16bit
define('CSYSFLAG_WAITINGROOM', 0x0001); // hide my games in waiting-room from contact
define('CSYSFLAG_REJECT_MESSAGE', 0x0002); // don't accept message from contact
define('CSYSFLAG_REJECT_INVITE', 0x0004); // don't accept invitation from contact
define('CSYSFLAG_WR_HIDE_GAMES', 0x0008); // hide games of user in waiting-room (e.g. paid games)
define('CSYSFLAG_F_HIDE_POSTS', 0x0010); // hide forum posts of user in forum-threads
// NOTE: Gold badge awarded for players with min. percentage of games played with weaker players
define('HERO_GOLDEN', 62); // 62% = rounded 1/golden_ratio
define('HERO_SILVER', 50);
define('HERO_BRONZE', 38); // 38% = 100% - HERO_GOLDEN
define('MIN_FIN_GAMES_HERO_AWARD', 20);
define('MIN_RATDIFF_HERO', 100); // 1k rating-diff minimum for hero-awards
define('DAYS_RESET_COUNT_TOURNEY_NEW', 2*7); // auto-reload of new-tournament-counter in days
// ---------- Quick-suite stuff -----------------------------------
define('QST_CACHE_BULLETIN', 'B');
define('QST_CACHE_MSG', 'M');
define('QST_CACHE_GAMES', 'G');
define('QST_CACHE_MPG', 'MPG');
// ---------- Help/FAQ stuff --------------------------------------
// FAQ/Intro/Links.Flags 0xff
// NOTE: HELPFLAG_OPS_ONLY & HELPFLAG_HIDDEN must be highest bits with HIDDEN > OPS_ONLY (for efficient index-use, see faq.php)
define('HELPFLAG_OPS_ONLY', 0x40); // show entry only to operators (=executives + translators)
define('HELPFLAG_HIDDEN', 0x80); // hide entry (except for FAQ-admins)
?>
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer