diff --git a/SQL/feedback_schema.sql b/SQL/feedback_schema.sql deleted file mode 100644 index 3fa0f7080dd..00000000000 --- a/SQL/feedback_schema.sql +++ /dev/null @@ -1,120 +0,0 @@ -CREATE TABLE `erro_admin` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `rank` varchar(32) NOT NULL DEFAULT 'Administrator', - `level` int(2) NOT NULL DEFAULT '0', - `flags` int(16) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_admin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `adminip` varchar(18) NOT NULL, - `log` text NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_ban` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `bantime` datetime NOT NULL, - `serverip` varchar(32) NOT NULL, - `bantype` varchar(32) NOT NULL, - `reason` text NOT NULL, - `job` varchar(32) DEFAULT NULL, - `duration` int(11) NOT NULL, - `rounds` int(11) DEFAULT NULL, - `expiration_time` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `computerid` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `a_ckey` varchar(32) NOT NULL, - `a_computerid` varchar(32) NOT NULL, - `a_ip` varchar(32) NOT NULL, - `who` text NOT NULL, - `adminwho` text NOT NULL, - `edits` text, - `unbanned` tinyint(1) DEFAULT NULL, - `unbanned_datetime` datetime DEFAULT NULL, - `unbanned_ckey` varchar(32) DEFAULT NULL, - `unbanned_computerid` varchar(32) DEFAULT NULL, - `unbanned_ip` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_feedback` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `time` datetime NOT NULL, - `round_id` int(8) NOT NULL, - `var_name` varchar(32) NOT NULL, - `var_value` int(16) DEFAULT NULL, - `details` text, - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_player` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `firstseen` datetime NOT NULL, - `lastseen` datetime NOT NULL, - `ip` varchar(18) NOT NULL, - `computerid` varchar(32) NOT NULL, - `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', - PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_option` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `pollid` int(11) NOT NULL, - `text` varchar(255) NOT NULL, - `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', - `minval` int(3) DEFAULT NULL, - `maxval` int(3) DEFAULT NULL, - `descmin` varchar(32) DEFAULT NULL, - `descmid` varchar(32) DEFAULT NULL, - `descmax` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_question` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', - `starttime` datetime NOT NULL, - `endtime` datetime NOT NULL, - `question` varchar(255) NOT NULL, - `adminonly` tinyint(1) DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_textreply` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `pollid` int(11) NOT NULL, - `ckey` varchar(32) NOT NULL, - `ip` varchar(18) NOT NULL, - `replytext` text NOT NULL, - `adminrank` varchar(32) NOT NULL DEFAULT 'Player', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_vote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `pollid` int(11) NOT NULL, - `optionid` int(11) NOT NULL, - `ckey` varchar(255) NOT NULL, - `ip` varchar(16) NOT NULL, - `adminrank` varchar(32) NOT NULL, - `rating` int(2) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_privacy` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `option` varchar(128) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; \ No newline at end of file diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index 2c3742b81df..ea9ace77c6a 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -1,100 +1,303 @@ -SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; -SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; -SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; +CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET latin1 */; +USE `feedback`; -CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; -CREATE SCHEMA IF NOT EXISTS `tgstation` DEFAULT CHARACTER SET latin1 ; -USE `mydb` ; -USE `tgstation` ; +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --- ----------------------------------------------------- --- Table `tgstation`.`death` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`death` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `pod` TEXT NOT NULL COMMENT 'Place of death' , - `coord` TEXT NOT NULL COMMENT 'X, Y, Z POD' , - `tod` DATETIME NOT NULL COMMENT 'Time of death' , - `job` TEXT NOT NULL , - `special` TEXT NOT NULL , - `name` TEXT NOT NULL , - `byondkey` TEXT NOT NULL , - `laname` TEXT NOT NULL COMMENT 'Last attacker name' , - `lakey` TEXT NOT NULL COMMENT 'Last attacker key' , - `gender` TEXT NOT NULL , - `bruteloss` INT(11) NOT NULL , - `brainloss` INT(11) NOT NULL , - `fireloss` INT(11) NOT NULL , - `oxyloss` INT(11) NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 3409 -DEFAULT CHARACTER SET = latin1; +-- +-- Table structure for table `erro_admin` +-- +DROP TABLE IF EXISTS `erro_admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `level` int(2) NOT NULL DEFAULT '0', + `flags` int(16) NOT NULL DEFAULT '0', + `email` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; --- ----------------------------------------------------- --- Table `tgstation`.`karma` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`karma` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `spendername` TEXT NOT NULL , - `spenderkey` TEXT NOT NULL , - `receivername` TEXT NOT NULL , - `receiverkey` TEXT NOT NULL , - `receiverrole` TEXT NOT NULL , - `receiverspecial` TEXT NOT NULL , - `isnegative` TINYINT(1) NOT NULL , - `spenderip` TEXT NOT NULL , - `time` DATETIME NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 943 -DEFAULT CHARACTER SET = latin1; +-- +-- Table structure for table `erro_admin_log` +-- +DROP TABLE IF EXISTS `erro_admin_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `adminip` varchar(18) NOT NULL, + `log` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=560 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; --- ----------------------------------------------------- --- Table `tgstation`.`karmatotals` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`karmatotals` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `byondkey` TEXT NOT NULL , - `karma` INT(11) NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 244 -DEFAULT CHARACTER SET = latin1; +-- +-- Table structure for table `erro_ban` +-- +DROP TABLE IF EXISTS `erro_ban`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_ban` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bantime` datetime NOT NULL, + `serverip` varchar(32) NOT NULL, + `bantype` varchar(32) NOT NULL, + `reason` text NOT NULL, + `job` varchar(32) DEFAULT NULL, + `duration` int(11) NOT NULL, + `rounds` int(11) DEFAULT NULL, + `expiration_time` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `computerid` varchar(32) NOT NULL, + `ip` varchar(32) NOT NULL, + `a_ckey` varchar(32) NOT NULL, + `a_computerid` varchar(32) NOT NULL, + `a_ip` varchar(32) NOT NULL, + `who` text NOT NULL, + `adminwho` text NOT NULL, + `edits` text, + `unbanned` int(2) DEFAULT NULL, + `unbanned_datetime` datetime DEFAULT NULL, + `unbanned_ckey` varchar(32) DEFAULT NULL, + `unbanned_computerid` varchar(32) DEFAULT NULL, + `unbanned_ip` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7755 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; --- ----------------------------------------------------- --- Table `tgstation`.`library` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`library` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `author` TEXT NOT NULL , - `title` TEXT NOT NULL , - `content` TEXT NOT NULL , - `category` TEXT NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 184 -DEFAULT CHARACTER SET = latin1; +-- +-- Table structure for table `erro_connection_log` +-- +DROP TABLE IF EXISTS `erro_connection_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_connection_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime DEFAULT NULL, + `serverip` varchar(45) DEFAULT NULL, + `ckey` varchar(45) DEFAULT NULL, + `ip` varchar(18) DEFAULT NULL, + `computerid` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=311192 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; --- ----------------------------------------------------- --- Table `tgstation`.`population` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`population` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `playercount` INT(11) NULL DEFAULT NULL , - `admincount` INT(11) NULL DEFAULT NULL , - `time` DATETIME NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 2544 -DEFAULT CHARACTER SET = latin1; +-- +-- Table structure for table `erro_death` +-- +DROP TABLE IF EXISTS `erro_death`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_death` ( + `id` int(11) NOT NULL DEFAULT '0', + `pod` text NOT NULL COMMENT 'Place of death', + `coord` text NOT NULL COMMENT 'X, Y, Z POD', + `tod` datetime NOT NULL COMMENT 'Time of death', + `job` text NOT NULL, + `special` text NOT NULL, + `name` text NOT NULL, + `byondkey` text NOT NULL, + `laname` text NOT NULL COMMENT 'Last attacker name', + `lakey` text NOT NULL COMMENT 'Last attacker key', + `gender` text NOT NULL, + `bruteloss` int(11) NOT NULL, + `brainloss` int(11) NOT NULL, + `fireloss` int(11) NOT NULL, + `oxyloss` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `erro_feedback` +-- -SET SQL_MODE=@OLD_SQL_MODE; -SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; -SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; +DROP TABLE IF EXISTS `erro_feedback`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_feedback` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime NOT NULL, + `round_id` int(8) NOT NULL, + `var_name` varchar(32) NOT NULL, + `var_value` int(16) DEFAULT NULL, + `details` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=456134 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_legacy_population` +-- + +DROP TABLE IF EXISTS `erro_legacy_population`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_legacy_population` ( + `id` int(11) NOT NULL DEFAULT '0', + `playercount` int(11) DEFAULT NULL, + `admincount` int(11) DEFAULT NULL, + `time` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_library` +-- + +DROP TABLE IF EXISTS `erro_library`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_library` ( + `id` int(11) NOT NULL DEFAULT '0', + `author` text NOT NULL, + `title` text NOT NULL, + `content` text NOT NULL, + `category` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_player` +-- + +DROP TABLE IF EXISTS `erro_player`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_player` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `firstseen` datetime NOT NULL, + `lastseen` datetime NOT NULL, + `ip` varchar(18) NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`), + UNIQUE KEY `ckey` (`ckey`) +) ENGINE=InnoDB AUTO_INCREMENT=8849 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_poll_option` +-- + +DROP TABLE IF EXISTS `erro_poll_option`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_poll_option` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pollid` int(11) NOT NULL, + `text` varchar(255) NOT NULL, + `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', + `minval` int(3) DEFAULT NULL, + `maxval` int(3) DEFAULT NULL, + `descmin` varchar(32) DEFAULT NULL, + `descmid` varchar(32) DEFAULT NULL, + `descmax` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=330 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_poll_question` +-- + +DROP TABLE IF EXISTS `erro_poll_question`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_poll_question` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', + `starttime` datetime NOT NULL, + `endtime` datetime NOT NULL, + `question` varchar(255) NOT NULL, + `adminonly` tinyint(1) DEFAULT '0', + `multiplechoiceoptions` int(2) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=62 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_poll_textreply` +-- + +DROP TABLE IF EXISTS `erro_poll_textreply`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_poll_textreply` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `ckey` varchar(32) NOT NULL, + `ip` varchar(18) NOT NULL, + `replytext` text NOT NULL, + `adminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=144 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_poll_vote` +-- + +DROP TABLE IF EXISTS `erro_poll_vote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_poll_vote` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `optionid` int(11) NOT NULL, + `ckey` varchar(255) NOT NULL, + `ip` varchar(16) NOT NULL, + `adminrank` varchar(32) NOT NULL, + `rating` int(2) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=15753 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `erro_privacy` +-- + +DROP TABLE IF EXISTS `erro_privacy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `erro_privacy` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `option` varchar(128) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5011 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2013-03-24 18:02:35 \ No newline at end of file diff --git a/code/__DEFINES.dm b/code/__DEFINES.dm index 3fc45960d98..fc723ffac68 100644 --- a/code/__DEFINES.dm +++ b/code/__DEFINES.dm @@ -328,6 +328,7 @@ var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons #define BANTYPE_JOB_PERMA 3 #define BANTYPE_JOB_TEMP 4 #define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban. +#define BANTYPE_APPEARANCE 6 #define SEE_INVISIBLE_MINIMUM 5 diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index bc253e2bdf6..57d16d68032 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -29,23 +29,12 @@ var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) var/vote_no_dead = 0 // dead people can't vote (tbi) var/del_new_on_log = 1 // del's new players if they log before they spawn in - var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard - var/traitor_scaling = 0 //if amount of traitors scales based on amount of players - var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other - var/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. var/allow_Metadata = 0 // Metadata is supported. var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. var/Ticklag = 0.9 var/Tickcomp = 0 var/allow_holidays = 0 //toggles whether holiday-specific content should be used - var/list/mode_names = list() - var/list/modes = list() // allowed modes - var/list/votable_modes = list() // votable modes - var/list/probabilities = list() // relative probability of each mode - var/humans_need_surnames = 0 - var/allow_random_events = 0 // enables random events mid-round when set to 1 - var/allow_ai = 1 // allow ai job var/hostedby = null var/respawn = 1 var/guest_jobban = 1 @@ -61,7 +50,27 @@ var/wikiurl var/forumurl - //Alert level description + var/forbid_singulo_possession = 0 + var/useircbot = 0 + + var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt + var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt + var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + + //game_options.txt configs + var/list/mode_names = list() + var/list/modes = list() // allowed modes + var/list/votable_modes = list() // votable modes + var/list/probabilities = list() // relative probability of each mode + + var/humans_need_surnames = 0 + var/allow_random_events = 0 // enables random events mid-round when set to 1 + var/allow_ai = 1 // allow ai job + + var/traitor_scaling = 0 //if amount of traitors scales based on amount of players + var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other + var/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. + var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." @@ -69,11 +78,6 @@ var/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." var/alert_desc_delta = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - var/forbid_singulo_possession = 0 - var/useircbot = 0 - - //game_options.txt configs - var/health_threshold_crit = 0 var/health_threshold_dead = -100 @@ -94,12 +98,7 @@ var/slime_delay = 0 var/animal_delay = 0 - var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt - var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt - var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database - var/use_recursive_explosions //Defines whether the server uses recursive or circular explosions. - var/roundstart_station_randomization = 1 //Enable this to have some randomization happen on the station. var/assistant_maint = 0 //Do assistants get maint access? var/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. @@ -108,21 +107,21 @@ /datum/configuration/New() var/list/L = typesof(/datum/game_mode) - /datum/game_mode - for (var/T in L) + for(var/T in L) // I wish I didn't have to instance the game modes in order to look up // their information, but it is the only way (at least that I know of). var/datum/game_mode/M = new T() - if (M.config_tag) + if(M.config_tag) if(!(M.config_tag in modes)) // ensure each mode is added only once diary << "Adding game mode [M.name] ([M.config_tag]) to configuration." - src.modes += M.config_tag - src.mode_names[M.config_tag] = M.name - src.probabilities[M.config_tag] = M.probability - if (M.votable) - src.votable_modes += M.config_tag + modes += M.config_tag + mode_names[M.config_tag] = M.name + probabilities[M.config_tag] = M.probability + if(M.votable) + votable_modes += M.config_tag del(M) - src.votable_modes += "secret" + votable_modes += "secret" /datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist var/list/Lines = file2list(filename) @@ -131,248 +130,126 @@ if(!t) continue t = trim(t) - if (length(t) == 0) + if(length(t) == 0) continue - else if (copytext(t, 1, 2) == "#") + else if(copytext(t, 1, 2) == "#") continue var/pos = findtext(t, " ") var/name = null var/value = null - if (pos) + if(pos) name = lowertext(copytext(t, 1, pos)) value = copytext(t, pos + 1) else name = lowertext(t) - if (!name) + if(!name) continue if(type == "config") - switch (name) - if ("admin_legacy_system") + switch(name) + if("admin_legacy_system") config.admin_legacy_system = 1 - - if ("ban_legacy_system") + if("ban_legacy_system") config.ban_legacy_system = 1 - - if ("use_age_restriction_for_jobs") + if("use_age_restriction_for_jobs") config.use_age_restriction_for_jobs = 1 - - if ("jobs_have_minimal_access") - config.jobs_have_minimal_access = 1 - - if ("use_recursive_explosions") - use_recursive_explosions = 1 - - if ("log_ooc") + if("log_ooc") config.log_ooc = 1 - - if ("log_access") + if("log_access") config.log_access = 1 - - if ("sql_enabled") - config.sql_enabled = 1 - - if ("log_say") + if("log_say") config.log_say = 1 - - if ("log_admin") + if("log_admin") config.log_admin = 1 - - if ("log_prayer") + if("log_prayer") config.log_prayer = 1 - - if ("log_law") + if("log_law") config.log_law = 1 - - if ("log_game") + if("log_game") config.log_game = 1 - - if ("log_vote") + if("log_vote") config.log_vote = 1 - - if ("log_whisper") + if("log_whisper") config.log_whisper = 1 - - if ("log_attack") + if("log_attack") config.log_attack = 1 - - if ("log_emote") + if("log_emote") config.log_emote = 1 - - if ("log_adminchat") + if("log_adminchat") config.log_adminchat = 1 - - if ("log_adminwarn") + if("log_adminwarn") config.log_adminwarn = 1 - - if ("log_pda") + if("log_pda") config.log_pda = 1 - - if ("log_hrefs") + if("log_hrefs") config.log_hrefs = 1 - if("allow_admin_ooccolor") config.allow_admin_ooccolor = 1 - - if ("allow_vote_restart") + if("allow_vote_restart") config.allow_vote_restart = 1 - - if ("allow_vote_mode") + if("allow_vote_mode") config.allow_vote_mode = 1 - - if ("allow_admin_jump") + if("allow_admin_jump") config.allow_admin_jump = 1 - if("allow_admin_rev") config.allow_admin_rev = 1 - - if ("allow_admin_spawning") + if("allow_admin_spawning") config.allow_admin_spawning = 1 - - if ("no_dead_vote") + if("no_dead_vote") config.vote_no_dead = 1 - - if ("default_no_vote") + if("default_no_vote") config.vote_no_default = 1 - - if ("vote_delay") + if("vote_delay") config.vote_delay = text2num(value) - - if ("vote_period") + if("vote_period") config.vote_period = text2num(value) - - if ("allow_ai") - config.allow_ai = 1 - - if ("norespawn") + if("norespawn") config.respawn = 0 - - if ("servername") + if("servername") config.server_name = value - - if ("serversuffix") + if("serversuffix") config.server_suffix = 1 - - if ("hostedby") + if("hostedby") config.hostedby = value - - if ("server") + if("server") config.server = value - - if ("banappeals") + if("banappeals") config.banappeals = value - - if ("wikiurl") + if("wikiurl") config.wikiurl = value - - if ("forumurl") + if("forumurl") config.forumurl = value - - if ("guest_jobban") + if("guest_jobban") config.guest_jobban = 1 - - if ("guest_ban") + if("guest_ban") guests_allowed = 0 - - if ("usewhitelist") + if("usewhitelist") config.usewhitelist = 1 - - if ("feature_object_spell_system") - config.feature_object_spell_system = 1 - - if ("allow_metadata") + if("allow_metadata") config.allow_Metadata = 1 - - if ("traitor_scaling") - config.traitor_scaling = 1 - - if("protect_roles_from_antagonist") - config.protect_roles_from_antagonist = 1 - - if ("probability") - var/prob_pos = findtext(value, " ") - var/prob_name = null - var/prob_value = null - - if (prob_pos) - prob_name = lowertext(copytext(value, 1, prob_pos)) - prob_value = copytext(value, prob_pos + 1) - if (prob_name in config.modes) - config.probabilities[prob_name] = text2num(prob_value) - else - diary << "Unknown game mode probability configuration definition: [prob_name]." - else - diary << "Incorrect probability configuration definition: [prob_name] [prob_value]." - - if("allow_random_events") - config.allow_random_events = 1 - if("kick_inactive") config.kick_inactive = 1 - if("load_jobs_from_txt") load_jobs_from_txt = 1 - - if("alert_red_upto") - config.alert_desc_red_upto = value - - if("alert_red_downto") - config.alert_desc_red_downto = value - - if("alert_blue_downto") - config.alert_desc_blue_downto = value - - if("alert_blue_upto") - config.alert_desc_blue_upto = value - - if("alert_green") - config.alert_desc_green = value - - if("alert_delta") - config.alert_desc_delta = value - if("forbid_singulo_possession") forbid_singulo_possession = 1 - if("popup_admin_pm") config.popup_admin_pm = 1 - if("allow_holidays") config.allow_holidays = 1 - if("useircbot") useircbot = 1 - if("ticklag") Ticklag = text2num(value) - if("tickcomp") Tickcomp = 1 - - if("humans_need_surnames") - humans_need_surnames = 1 - if("tor_ban") ToRban = 1 - if("automute_on") automute_on = 1 - - if("assistant_maint") - config.assistant_maint = 1 - - if("gateway_delay") - config.gateway_delay = text2num(value) - - if("continuous_rounds") - config.continous_rounds = 1 - - if("ghost_interaction") - config.ghost_interaction = 1 - else diary << "Unknown setting in configuration: '[name]'" @@ -408,6 +285,55 @@ config.slime_delay = value if("animal_delay") config.animal_delay = value + if("alert_red_upto") + config.alert_desc_red_upto = value + if("alert_red_downto") + config.alert_desc_red_downto = value + if("alert_blue_downto") + config.alert_desc_blue_downto = value + if("alert_blue_upto") + config.alert_desc_blue_upto = value + if("alert_green") + config.alert_desc_green = value + if("alert_delta") + config.alert_desc_delta = value + if("assistant_maint") + config.assistant_maint = 1 + if("gateway_delay") + config.gateway_delay = text2num(value) + if("continuous_rounds") + config.continous_rounds = 1 + if("ghost_interaction") + config.ghost_interaction = 1 + if("traitor_scaling") + config.traitor_scaling = 1 + if("protect_roles_from_antagonist") + config.protect_roles_from_antagonist = 1 + if("probability") + var/prob_pos = findtext(value, " ") + var/prob_name = null + var/prob_value = null + + if(prob_pos) + prob_name = lowertext(copytext(value, 1, prob_pos)) + prob_value = copytext(value, prob_pos + 1) + if(prob_name in config.modes) + config.probabilities[prob_name] = text2num(prob_value) + else + diary << "Unknown game mode probability configuration definition: [prob_name]." + else + diary << "Incorrect probability configuration definition: [prob_name] [prob_value]." + + if("allow_random_events") + config.allow_random_events = 1 + if("jobs_have_minimal_access") + config.jobs_have_minimal_access = 1 + if("use_recursive_explosions") + use_recursive_explosions = 1 + if("humans_need_surnames") + humans_need_surnames = 1 + if("allow_ai") + config.allow_ai = 1 else diary << "Unknown setting in configuration: '[name]'" @@ -417,110 +343,64 @@ if(!t) continue t = trim(t) - if (length(t) == 0) + if(length(t) == 0) continue - else if (copytext(t, 1, 2) == "#") + else if(copytext(t, 1, 2) == "#") continue var/pos = findtext(t, " ") var/name = null var/value = null - if (pos) + if(pos) name = lowertext(copytext(t, 1, pos)) value = copytext(t, pos + 1) else name = lowertext(t) - if (!name) + if(!name) continue - switch (name) - if ("address") + switch(name) + if("sql_enabled") + config.sql_enabled = 1 + if("address") sqladdress = value - if ("port") + if("port") sqlport = value - if ("database") - sqldb = value - if ("login") - sqllogin = value - if ("password") - sqlpass = value - if ("feedback_database") + if("feedback_database") sqlfdbkdb = value - if ("feedback_login") + if("feedback_login") sqlfdbklogin = value - if ("feedback_password") + if("feedback_password") sqlfdbkpass = value - if ("enable_stat_tracking") + if("enable_stat_tracking") sqllogging = 1 else diary << "Unknown setting in configuration: '[name]'" -/datum/configuration/proc/loadforumsql(filename) // -- TLE - var/list/Lines = file2list(filename) - for(var/t in Lines) - if(!t) continue - - t = trim(t) - if (length(t) == 0) - continue - else if (copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - var/value = null - - if (pos) - name = lowertext(copytext(t, 1, pos)) - value = copytext(t, pos + 1) - else - name = lowertext(t) - - if (!name) - continue - - switch (name) - if ("address") - forumsqladdress = value - if ("port") - forumsqlport = value - if ("database") - forumsqldb = value - if ("login") - forumsqllogin = value - if ("password") - forumsqlpass = value - if ("activatedgroup") - forum_activated_group = value - if ("authenticatedgroup") - forum_authenticated_group = value - else - diary << "Unknown setting in configuration: '[name]'" - /datum/configuration/proc/pick_mode(mode_name) // I wish I didn't have to instance the game modes in order to look up // their information, but it is the only way (at least that I know of). - for (var/T in (typesof(/datum/game_mode) - /datum/game_mode)) + for(var/T in (typesof(/datum/game_mode) - /datum/game_mode)) var/datum/game_mode/M = new T() - if (M.config_tag && M.config_tag == mode_name) + if(M.config_tag && M.config_tag == mode_name) return M del(M) return new /datum/game_mode/extended() /datum/configuration/proc/get_runnable_modes() var/list/datum/game_mode/runnable_modes = new - for (var/T in (typesof(/datum/game_mode) - /datum/game_mode)) + for(var/T in (typesof(/datum/game_mode) - /datum/game_mode)) var/datum/game_mode/M = new T() //world << "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]" - if (!(M.config_tag in modes)) + if(!(M.config_tag in modes)) del(M) continue - if (probabilities[M.config_tag]<=0) + if(probabilities[M.config_tag]<=0) del(M) continue - if (M.can_start()) + if(M.can_start()) runnable_modes[M] = probabilities[M.config_tag] //world << "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]" return runnable_modes diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 802ebd2fe57..033ff1bd55a 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -1,11 +1,5 @@ -/* - * This datum gets revision info from local svn 'entries' file - * Path to the directory containing it should be in 'config/svndir.txt' file - * - */ var/global/datum/getrev/revdata = new() -//Oh yeah, I'm an OOP fag, lalala /datum/getrev var/project_href var/revision @@ -23,15 +17,15 @@ var/global/datum/getrev/revdata = new() if(last_entry.len < 2) continue revision = last_entry[2] break - + showinfo = "Server Revision: " if(revision) showinfo += "[revision]" else showinfo += "*unknown*" showinfo += "
-Report Bugs Here-
Please provide as much info as possible
Copy/paste the revision hash into your issue report if possible, thanks :)
| "
+ if(appearance_isbanned(user))
+ dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game. " dat += "Random Name " dat += "Always Random Name: [be_random_name ? "Yes" : "No"] " diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 65a87c61351..c844b3edb38 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -6,7 +6,6 @@ * Barcode Scanner */ - /* * Bookcase */ @@ -20,6 +19,7 @@ opacity = 1 var/state = 0 + /obj/structure/bookcase/initialize() state = 2 icon_state = "book-0" @@ -29,59 +29,61 @@ I.loc = src update_icon() -/obj/structure/bookcase/attackby(obj/O as obj, mob/user as mob) +/obj/structure/bookcase/attackby(obj/item/I, mob/user) switch(state) if(0) - if(istype(O, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + if(istype(I, /obj/item/weapon/wrench)) + playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) if(do_after(user, 20)) - user << "\blue You wrench the frame into place." + user << "You wrench the frame into place." anchored = 1 state = 1 - if(istype(O, /obj/item/weapon/crowbar)) - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + if(istype(I, /obj/item/weapon/crowbar)) + playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) if(do_after(user, 20)) - user << "\blue You pry the frame apart." - new /obj/item/stack/sheet/wood( loc, 4) + user << "You pry the frame apart." + new /obj/item/stack/sheet/wood(loc, 4) del(src) if(1) - if(istype(O, /obj/item/stack/sheet/wood)) - var/obj/item/stack/sheet/wood/W = O + if(istype(I, /obj/item/stack/sheet/wood)) + var/obj/item/stack/sheet/wood/W = I W.use(2) - user << "\blue You add a shelf." + user << "You add a shelf." state = 2 icon_state = "book-0" - if(istype(O, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue You unrwench the frame." + if(istype(I, /obj/item/weapon/wrench)) + playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "You unrwench the frame." anchored = 0 state = 0 + if(2) - if(istype(O, /obj/item/weapon/book)) + if(istype(I, /obj/item/weapon/book)) user.drop_item() - O.loc = src + I.loc = src update_icon() - else if(istype(O, /obj/item/weapon/pen)) + else if(istype(I, /obj/item/weapon/pen)) var/newname = stripped_input(usr, "What would you like to title this bookshelf?") if(!newname) return else name = ("bookcase ([sanitize(newname)])") - else if(istype(O, /obj/item/weapon/crowbar)) + else if(istype(I, /obj/item/weapon/crowbar)) if(contents.len) - user << "\red You need to remove the books first." + user << "You need to remove the books first." else - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user << "\blue You pry the shelf out." - new /obj/item/stack/sheet/wood( loc, 1) + playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + user << "You pry the shelf out." + new /obj/item/stack/sheet/wood(loc, 1) state = 1 icon_state = "bookempty" else ..() -/obj/structure/bookcase/attack_hand(var/mob/user as mob) + +/obj/structure/bookcase/attack_hand(mob/user) if(contents.len) var/obj/item/weapon/book/choice = input("Which book would you like to remove from the shelf?") in contents as obj|null if(choice) @@ -94,27 +96,26 @@ choice.loc = get_turf(src) update_icon() + /obj/structure/bookcase/ex_act(severity) switch(severity) if(1.0) for(var/obj/item/weapon/book/b in contents) del(b) del(src) - return if(2.0) for(var/obj/item/weapon/book/b in contents) - if (prob(50)) b.loc = (get_turf(src)) - else del(b) + if(prob(50)) + b.loc = (get_turf(src)) + else + del(b) del(src) - return if(3.0) - if (prob(50)) + if(prob(50)) for(var/obj/item/weapon/book/b in contents) b.loc = (get_turf(src)) del(src) - return - else - return + /obj/structure/bookcase/update_icon() if(contents.len < 5) @@ -124,7 +125,7 @@ /obj/structure/bookcase/manuals/medical - name = "Medical Manuals bookcase" + name = "medical manuals bookcase" New() ..() @@ -133,7 +134,7 @@ /obj/structure/bookcase/manuals/engineering - name = "Engineering Manuals bookcase" + name = "engineering manuals bookcase" New() ..() @@ -145,8 +146,9 @@ new /obj/item/weapon/book/manual/robotics_cyborgs(src) update_icon() + /obj/structure/bookcase/manuals/research_and_development - name = "R&D Manuals bookcase" + name = "\improper R&D manuals bookcase" New() ..() @@ -166,19 +168,20 @@ w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) flags = FPRINT | TABLEPASS attack_verb = list("bashed", "whacked", "educated") - var/dat // Actual page content - var/due_date = 0 // Game time in 1/10th seconds - var/author // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned - var/unique = 0 // 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified - var/title // The real name of the book. - var/carved = 0 // Has the book been hollowed out for use as a secret storage item? + var/dat //Actual page content + var/due_date = 0 //Game time in 1/10th seconds + var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned + var/unique = 0 //0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified + var/title //The real name of the book. + var/carved = 0 //Has the book been hollowed out for use as a secret storage item? var/obj/item/store //What's in the book? -/obj/item/weapon/book/attack_self(var/mob/user as mob) + +/obj/item/weapon/book/attack_self(mob/user) if(carved) if(store) user << "[store] falls out of [title]!" - store.loc = get_turf(src.loc) + store.loc = get_turf(loc) store = null return else @@ -190,31 +193,33 @@ if(dat) user << browse("Penned by [author]. " + "[dat]", "window=book") - user.visible_message("[user] opens a book titled \"[src.title]\" and begins reading intently.") + user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") onclose(user, "book") else - user << "This book is completely blank!" + user << "This book is completely blank!" -/obj/item/weapon/book/attackby(obj/item/weapon/W as obj, mob/user as mob) + +/obj/item/weapon/book/attackby(obj/item/I, mob/user) if(carved) if(!store) - if(W.w_class < 3) + if(I.w_class < 3) user.drop_item() - W.loc = src - store = W - user << "You put [W] in [title]." + I.loc = src + store = I + user << "You put [I] in [title]." return else - user << "[W] won't fit in [title]." + user << "[I] won't fit in [title]." return else user << "There's already something in [title]!" return - if(istype(W, /obj/item/weapon/pen)) + + if(istype(I, /obj/item/weapon/pen)) if(is_blind(user)) return if(unique) - user << "These pages don't seem to take the ink well. Looks like you can't modify it." + user << "These pages don't seem to take the ink well. Looks like you can't modify it." return var/choice = input("What would you like to change?") in list("Title", "Contents", "Author", "Cancel") switch(choice) @@ -224,55 +229,58 @@ usr << "The title is invalid." return else - src.name = newtitle - src.title = newtitle + name = newtitle + title = newtitle if("Contents") var/content = strip_html(input(usr, "Write your book's contents (HTML NOT allowed):"),8192) as message|null if(!content) usr << "The content is invalid." return else - src.dat += content + dat += content if("Author") var/newauthor = stripped_input(usr, "Write the author's name:") if(!newauthor) usr << "The name is invalid." return else - src.author = newauthor + author = newauthor else return - else if(istype(W, /obj/item/weapon/barcodescanner)) - var/obj/item/weapon/barcodescanner/scanner = W + + else if(istype(I, /obj/item/weapon/barcodescanner)) + var/obj/item/weapon/barcodescanner/scanner = I if(!scanner.computer) - user << "[W]'s screen flashes: 'No associated computer found!'" + user << "[I]'s screen flashes: 'No associated computer found!'" else switch(scanner.mode) if(0) scanner.book = src - user << "[W]'s screen flashes: 'Book stored in buffer.'" + user << "[I]'s screen flashes: 'Book stored in buffer.'" if(1) scanner.book = src - scanner.computer.buffer_book = src.name - user << "[W]'s screen flashes: 'Book stored in buffer. Book title stored in associated computer buffer.'" + scanner.computer.buffer_book = name + user << "[I]'s screen flashes: 'Book stored in buffer. Book title stored in associated computer buffer.'" if(2) scanner.book = src for(var/datum/borrowbook/b in scanner.computer.checkouts) - if(b.bookname == src.name) + if(b.bookname == name) scanner.computer.checkouts.Remove(b) - user << "[W]'s screen flashes: 'Book stored in buffer. Book has been checked in.'" + user << "[I]'s screen flashes: 'Book stored in buffer. Book has been checked in.'" return - user << "[W]'s screen flashes: 'Book stored in buffer. No active check-out record found for current title.'" + user << "[I]'s screen flashes: 'Book stored in buffer. No active check-out record found for current title.'" if(3) scanner.book = src for(var/obj/item/weapon/book in scanner.computer.inventory) if(book == src) - user << "[W]'s screen flashes: 'Book stored in buffer. Title already present in inventory, aborting to avoid duplicate entry.'" + user << "[I]'s screen flashes: 'Book stored in buffer. Title already present in inventory, aborting to avoid duplicate entry.'" return scanner.computer.inventory.Add(src) - user << "[W]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'" - else if(istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/wirecutters)) - if(carved) return + user << "[I]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'" + + else if(istype(I, /obj/item/weapon/kitchenknife) || istype(I, /obj/item/weapon/wirecutters)) + if(carved) + return user << "You begin to carve out [title]." if(do_after(user, 30)) user << "You carve out the pages from [title]! You didn't want to read it anyway." @@ -293,11 +301,11 @@ throw_range = 5 w_class = 1.0 flags = FPRINT | TABLEPASS - var/obj/machinery/librarycomp/computer // Associated computer - Modes 1 to 3 use this - var/obj/item/weapon/book/book // Currently scanned book - var/mode = 0 // 0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory + var/obj/machinery/librarycomp/computer //Associated computer - Modes 1 to 3 use this + var/obj/item/weapon/book/book //Currently scanned book + var/mode = 0 //0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory - attack_self(mob/user as mob) + attack_self(mob/user) mode += 1 if(mode > 3) mode = 0 @@ -315,7 +323,7 @@ else modedesc = "ERROR" user << " - Mode [mode] : [modedesc]" - if(src.computer) + if(computer) user << "Computer has been associated with this unit." else user << "No associated computer found. Only local scans will function properly." diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 8203f8a1411..d5c6a696b67 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -43,8 +43,8 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f dat += "Filter by Author: [author] " dat += "\[Start Search\] " if(1) - establish_old_db_connection() - if(!dbcon_old.IsConnected()) + establish_db_connection() + if(!dbcon.IsConnected()) dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance. " else if(!SQLquery) dat += "ERROR: Malformed search request. Please contact your system administrator for assistance. " @@ -52,7 +52,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f dat += "
|