Skip to content
This repository has been archived by the owner on Sep 12, 2021. It is now read-only.

Commit

Permalink
TG Merge 7a (#713)
Browse files Browse the repository at this point in the history
* You can no longer use communications consoles off a station/CentCom z-level. (#55524)

Closes #55517 by making it so communications consoles don't work off of the station z-level.

If you want to impact the game for nearly every player, it's now more likely you're impacted by it as well. Also prevents people from hiding in things like asteroids or drones from constantly recalling/calling.

* tgui: Secrets Panel (#55698)

Tgui-izes the secrets panel

Removes one terrible shuttle button, but just know all of them are pretty shit
There can only be one (40 second delay) was condensed into an option for there can only be one

Before it was a blank HTML document. It has some kind of useful stuff, and also some shitpost-y stuff. Using some tab system really helps you pick out where the logging/issue fixing buttons are and where the silly garbage

* Better saving of chat logs (#55898)

## About The Pull Request

Makes it so that it'll only save the messages that are visible in the current tab. ie, the logs will respect the types of messages in the current tab.

## Why It's Good For The Game

Because when you just want admin messages or combat logs, it's annoying to have to sort through literally everything else to get them.

* Fix tgchat lightmode tooltips (#55905)

Tooltips in lightmode when not mouseovered have invisible text

* Update axios to 0.21.1 (#55968)

* Change the "Who" verb to display a table rather than a list (#53839)

Doesn't apply for active admins since those have longer lines that wouldn't fit well.

* Remove tab before names in Who for deadmins (#53930)

Previously, names were prefixed with tabs for deadmins. This makes the output look significantly worse.

* Some of the unsorted chat types being sorted (#55947)

    The emote CSS class was no longer in use, it has been unitalicized and made into the actual emote class, back into local.
    A CSS class for info has been created which has no special CSS.
    The who verb has been put into info. (infoplain CSS class)
    PDA message receiving has been put into info (PDA message sending was already in info). (infoplain CSS class)
    Supply radio has been properly placed into radio.
    Service radio has been properly placed into radio.
    Binary talk has been placed into radio.
    A CSS class for minor announcements has been created.
    Minor announcements (shuttle purchases, head of staff office announcements, silicon announcements, etc) have been placed into radio (major announcements are already in radio). (minorannounce CSS class)

* Properly sanitizes loaded messages in tgui chat (#56001)

* properly sanitizes loaded messages in tgui chat, causes some hitching

* Forbid tags

Co-authored-by: Aleksej Komarov <[email protected]>

* tgui: List Input (#56065)

Ported over from https://gitlab.com/cmdevs/colonial-warfare/-/merge_requests/613 which provides an input box to select an option from a list.
Has a search bar to allow filtering for results and an onKeyDown event to replicate default behaviour from the default list input boxes that BYOND provides (where you are able to type the first letter of an element in the list and it'll jump to the first element that matches and then the next and so on)
Right now, it is only applied to the holopad and "Drop Bomb" verb for administrators.

Credits to bobbahbrown for the Loader element from AlertModal.js which allows for a timed input (was needed on the CM codebase for timed inputs) and for the majority of the DM code.

Co-authored-by: Watermelon914 <[email protected]>
Co-authored-by: Aleksej Komarov <[email protected]>

* Update precommit hooks to work in GitHub Desktop (#51404)

Turns out GitHub Desktop actually does bundle a sh.exe, just not a bash.

Also tries to look for the py launcher to help people who didn't check 
the "Add Python to PATH" option.

* Use portable Python for map merge hooks, other tools (#55658)

* Add tools/bootstrap/python

* Add dependencies.sh entry for Python

* Use bootstrapped Python for HitboxExpander

* Use bootstrapped Python when installing hooks

Also:
- Adds tools/hooks/Uninstall.bat
- Removes the need to re-run Install.bat when a .hook file changes

Python path temporarily includes tools/mapmerge2 as before:
- PYTHONPATH in tools/hooks/python.sh handles Linux/virtualenv
- python36._pth handles Windows portable

* Move DMI merge driver to its own directory

* Use bootstrapped Python for makeChangelog.bat

* Set window title in bootstrap PS scripts

* Use slashes in hook paths

* Use relative imports in mapmerge2

* Use bootstrapped Python for mapmerge

* Update mapmerge2 readme

* Skip non-3way conflicts

* Fix relative path issue in posthoc merger

* Add missing call and %* to .bat files

* When installing hooks, don't uninstall them all first

* Make dependencies.sh POSIX

* Move update_paths.py to its own folder

* Use line buffering for Python stdout/stderr

It was switching to fully-buffered mode due to being piped, meaning we
wouldn't see output until the script ended. This is undesirable.

* Use new path to dmi.test in CI suite

* Validate system Python version in bootstrap script

* Add install advice to bootstrap script

* Update path to requirements.txt in CI

* Add upgrader for existing installations

* Add .dmm merge driver (#55699)

This is kind of a prototype. It only fully handles a few situations,
and doesn't produce particularly easy-to-read conflict markers when it
fails. I hope that it can be useful at least some of the time, can be
improved over time, and that the lessons learned can influence a future
interactive GUI conflict resolver (integrated into StrongDMM?). In the
worst case, one can fall back to the tried and true "manually re-do one
side's changes" strategy.

**Automatic use**: In `tools/hooks/`, run `Install.bat`

**Manual use**, for Git GUIs that don't run merge drivers: while a
merge is in progress, in `tools/mapmerge2/`, double-click `Resolve Map
Conflicts.bat`

This PR also removes the error-prone "Prepare Maps.bat" /
"mapmerge.bat" workflow. Those who aren't using the hooks should
instead use `Run Before Committing.bat` before committing. First-time
contributors who opened a PR without map merging can be advised to run
`I Forgot To Map Merge.bat`.

* Add .tgs4.yml (#55993)

This is a simple reference to be used by TGS4 clients (not the server, fuck everything about TGS3.json) to help automatically setup new instances.

No official spec but the basic schema I have in mind is:

    static_files: Array of directory names to create in the StaticFiles directory. If populate is set, they should be copied from the repository (can also be used to select files).
    linux_scripts/windows_scripts: Map of names of EventScripts to paths to copy from the repository for Linux or Windows respectively.
    dme: Path to .dme to build for downstreams that have multiple.

* Rage hack for starting an auto updating /tg/ tgs4 docker instance with the db preconfigured (#51108)

* Rage code

* Hrrm

* Fix windows newlines

* Utter insanity

* This won't work as a post compile step

* Why didn't I do this before?

* Shouldn't be necessary

* This could be it

* Just move it here

* Fixes

* Readme updates

* Readme

* REAAAAD

* Use envars

* More env vars

* typo

* Fixes

* REAAAD

* Fix script

* The missing link

* Remove BSQL from LinuxOneShot TGS setup script (#51530)

* Better script for docker (#54501)

The linux one shot script is not a drop-in for the docker script. Let's separate the two.

* Common Build Tooling (#55373)

Add Common Build Tooling

On Windows, the build scripts will automatically install Node. Other
platforms should use their package manager or download it from
https://nodejs.org/en/download/

Pick one:

- VSCode: `Ctrl+Shift+B`
- VSCode: `F5` (build & run with debugger) or `Ctrl+F5` (build & run
  without debugger)
- Windows: double-click root `Build.bat` (pause to see output) or
  `tools/build/build.bat` (no pause)
- Git Bash and non-Windows: `tools/build/build`

- TGS scripts will automatically install the version of Node specified
  in `dependencies.sh`
- Either use this build script, or compile tgui by running any script
  in `tgui/bin` folder.

Both dm and tgui are now built with a single script. It's pretty easy
to launch: just press `Ctrl+Shift+B` in VSCode, and tada! 🎉

**It's smart.** It will skip certain steps if source files were
untouched for that step. So, if you're only touching dm code, it will
only rebuild dm code, and will skip tgui.

**Syntax is fairly readable and maintainable.**

```js
const { Task, runTasks, exec } = require('./cbt');

const taskTgui = new Task('tgui')
  .depends('tgui/yarn.lock')
  .depends('tgui/packages/**/*.js')
  .provides('tgui/public/*.bundle.*')
  .provides('tgui/public/*.chunk.*')
  .build(async () => {
    await exec('tgui/bin/tgui');
  });

runTasks([taskTgui]);
```

**This is a long term solution to the js bundle hell.** Now that we
have a single script to build everything, bundles have been excluded
from the repo, and they will no longer cause conflicts in PRs. This
results in quicker PR turnaround time and less time wasted on
rebuilding tgui for PRs.

**CI pipelines have been updated.** They're not coded in the most
optimal way, just making them green for now.

- Support compiling with DM defines by passing them as an argument,
  like `-D LOWMEMORYMODE`.
- Instead of explicitly listing the task sequence in `runTasks()`,
  support specifying tasks in `.depends()`, which in turn will allow
  building a graph of dependencies and running things in parallel.

Co-authored-by: Tad Hardesty <[email protected]>

- Add root Build.bat
- Add trio of tools/bootstrap/ scripts for Node
- Add tools/build/README.md
- Ensure build script and VSC configuration works properly on Linux
- Update TGS4 PreCompile scripts

Co-authored-by: Jordan Brown <[email protected]>

- Keep PreCompile scripts compatible with TGS3 as well
- Update LinuxOneShot PreCompile scripts
- Update TGS4 configuration

* Update Dockerfile for CBT (#56175)

Follow-up to fix the failing Docker CI on master.

- Reorganize the entire Dockerfile to be more readable
- Inline the tgstation/byond Dockerfile into our own, so we can change the base distro at will
- Also allows us to trash the dependencies.sh<->Dockerfile hack
- Use 32-bit libs on a 64-bit distro so that we can download and run recent 64-bit Node binaries
- Call tools/build/build rather than DreamMaker directly

* Added autofocus for the first button in the TGUI list input. (#56114)

Ported over from https://gitlab.com/cmdevs/colonial-warfare/-/merge_requests/647
When you open the TGUI list input, it'll auto-focus the first element so that you can easily navigate with the arrow keys without having to click on the page beforehand.

Small QoL when opening the thing, don't have to click on it if you want to navigate via arrows keys, etc.

* Fixes comms console runtime that stops you paying off pirates (and reply to any other messages) (#56135)

This is because JS-side it does a string concat instead of integer addition at messageIndex + 1, as messageIndex is a string and nothing in JS is typed because it is an evil programming language that is a cross between Hitler and Skeletor, with piss of pure liquid malevolence.

We appropriately parse the messageIndex to an int radix 10 before adding 1, and everything just works.

Also removes two text2num conversions following a recent tgui change that made this no longer necessary.

* tgui 4.3 (tgstation/#56080)

Co-authored-by: Aleksej Komarov <[email protected]>

* Optimize mapmerge's DMM.generate_new_key method (#56068)

Tested on #55867, takes the merge driver's runtime from 148.1s to 4.8s

* updates dependencies.sh

* minor fixes

* OUTTA DIS HOUSE

Co-authored-by: Jared-Fogle <[email protected]>
Co-authored-by: tralezab <[email protected]>
Co-authored-by: Seris02 <[email protected]>
Co-authored-by: spookydonut <[email protected]>
Co-authored-by: Jordan Brown <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
Co-authored-by: Aleksej Komarov <[email protected]>
Co-authored-by: Watermelon914 <[email protected]>
Co-authored-by: Watermelon914 <[email protected]>
Co-authored-by: Tad Hardesty <[email protected]>
Co-authored-by: Timberpoes <[email protected]>
  • Loading branch information
12 people authored Jan 26, 2021
1 parent e553262 commit 7b29807
Show file tree
Hide file tree
Showing 265 changed files with 11,354 additions and 7,388 deletions.
6 changes: 6 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ indent_size = 2

[*.py]
indent_style = space

[*.md]
trim_trailing_whitespace = false

[Dockerfile]
indent_style = space
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@
/code/modules/admin/verbs/adminpm.dm @Cyberboss
/code/modules/server_tools/ @Cyberboss
/code/modules/mapping/ @Cyberboss
/tools/LinuxOneShot/ @Cyberboss
/tools/tgs4_scripts/ @Cyberboss

# duncathan

Expand Down
45 changes: 25 additions & 20 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,19 @@ jobs:
- name: Install Tools
run: |
pip3 install setuptools
bash tools/ci/install_build_tools.sh
bash tools/ci/install_node.sh
bash tools/ci/install_spaceman_dmm.sh dreamchecker
pip3 install -r tools/mapmerge2/requirements.txt
pip3 install -r tools/requirements.txt
- name: Run Linters
run: |
bash tools/ci/check_filedirs.sh tgstation.dme
bash tools/ci/check_changelogs.sh
find . -name "*.php" -print0 | xargs -0 -n1 php -l
find . -name "*.json" -not -path "*/node_modules/*" -print0 | xargs -0 python3 ./tools/json_verifier.py
bash tools/ci/build_tgui.sh
tgui/bin/tgui --lint
bash tools/ci/check_grep.sh
python3 tools/mapmerge2/dmi.py --test
tools/bootstrap/python -m dmi.test
tools/bootstrap/python -m mapmerge2.dmm_test
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
- name: Annotate Lints
uses: yogstation13/DreamAnnotate@v1
Expand All @@ -54,7 +55,9 @@ jobs:
bash tools/ci/install_byond.sh
source $HOME/BYOND/byond/bin/byondsetup
python3 tools/ci/template_dm_generator.py
tgui/bin/tgui --build
bash tools/ci/dm.sh -DCIBUILDING -DCITESTING -DALL_MAPS tgstation.dme
run_all_tests:
name: Integration Tests
runs-on: ubuntu-latest
Expand Down Expand Up @@ -90,22 +93,24 @@ jobs:
run: |
bash tools/ci/install_byond.sh
source $HOME/BYOND/byond/bin/byondsetup
tgui/bin/tgui --build
bash tools/ci/dm.sh -DCIBUILDING tgstation.dme
bash tools/ci/run_server.sh
# test_windows:
# name: Windows Build
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v2
# - name: Compile
# run: pwsh tools/ci/build.ps1
# - name: Create artifact
# run: |
# md deploy
# bash tools/deploy.sh ./deploy
# - name: Deploy artifact
# uses: actions/upload-artifact@v2
# with:
# name: deploy
# path: deploy
test_windows:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Windows Build
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Compile
run: pwsh tools/ci/build.ps1
- name: Create artifact
run: |
md deploy
bash tools/deploy.sh ./deploy
- name: Deploy artifact
uses: actions/upload-artifact@v2
with:
name: deploy
path: deploy
11 changes: 0 additions & 11 deletions .github/workflows/docker_test.yml

This file was deleted.

13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,23 @@ tools/obfStringGenerator/x64/*

#dmdoc default folder
/dmdoc

# Ignore custom music and title screens (amend as appropriate)
/config/jukebox_music/sounds/*
!/config/jukebox_music/sounds/exclude
/config/title_music/sounds/*
!/config/title_music/sounds/exclude
/config/title_screens/images/*
!/config/title_screens/images/exclude

#Linux docker
tools/LinuxOneShot/SetupProgram/obj/*
tools/LinuxOneShot/SetupProgram/bin/*
tools/LinuxOneShot/SetupProgram/.vs
tools/LinuxOneShot/Database
tools/LinuxOneShot/TGS_Config
tools/LinuxOneShot/TGS_Instances
tools/LinuxOneShot/TGS_Logs

# Common build tooling
!/tools/build
8 changes: 8 additions & 0 deletions .tgs4.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
static_files:
- name: config
populate: true
- name: data
linux_scripts:
PreCompile.sh: tools/tgs4_scripts/PreCompile.sh
windows_scripts:
PreCompile.bat: tools/tgs4_scripts/PreCompile.bat
12 changes: 12 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "byond",
"request": "launch",
"name": "Launch DreamSeeker",
"preLaunchTask": "Build All",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
}
]
}
39 changes: 39 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "process",
"command": "tools/build/build",
"windows": {
"command": ".\\tools\\build\\build.bat"
},
"problemMatcher": [
"$dreammaker",
"$eslint-stylish"
],
"group": "build",
"label": "Build All"
},
{
"type": "dreammaker",
"dme": "tgstation.dme",
"problemMatcher": [
"$dreammaker"
],
"group": "build",
"label": "dm: build - tgstation.dme"
},
{
"type": "shell",
"command": "tgui/bin/tgui",
"windows": {
"command": ".\\tgui\\bin\\tgui.bat"
},
"problemMatcher": [
"$eslint-stylish"
],
"group": "build",
"label": "tgui: build"
}
]
}
2 changes: 2 additions & 0 deletions Build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@call tools\build\build
@pause
102 changes: 63 additions & 39 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,62 +1,86 @@
FROM tgstation/byond:513.1526 as base
# base = ubuntu + full apt update
FROM ubuntu:xenial AS base

FROM base as rust_g

RUN apt-get update \
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get dist-upgrade -y \
&& apt-get install -y --no-install-recommends \
git \
ca-certificates
ca-certificates

WORKDIR /rust_g
# byond = base + byond installed globally
FROM base AS byond
WORKDIR /byond

RUN apt-get install -y --no-install-recommends \
libssl-dev \
pkg-config \
curl \
gcc-multilib \
&& curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu \
&& git init \
&& git remote add origin https://github.com/tgstation/rust-g
curl \
unzip \
make \
libstdc++6:i386

COPY dependencies.sh .

RUN /bin/bash -c "source dependencies.sh \
&& git fetch --depth 1 origin \$RUST_G_VERSION" \
&& git checkout FETCH_HEAD \
&& ~/.cargo/bin/cargo build --release

FROM base as dm_base

RUN . ./dependencies.sh \
&& curl "http://www.byond.com/download/build/${BYOND_MAJOR}/${BYOND_MAJOR}.${BYOND_MINOR}_byond_linux.zip" -o byond.zip \
&& unzip byond.zip \
&& cd byond \
&& sed -i 's|install:|&\n\tmkdir -p $(MAN_DIR)/man6|' Makefile \
&& make install \
&& chmod 644 /usr/local/byond/man/man6/* \
&& apt-get purge -y --auto-remove curl unzip make \
&& cd .. \
&& rm -rf byond byond.zip

# build = byond + tgstation compiled and deployed to /deploy
FROM byond AS build
WORKDIR /tgstation

FROM dm_base as build
RUN apt-get install -y --no-install-recommends \
curl

COPY . .

RUN DreamMaker -max_errors 0 tgstation.dme \
RUN env TG_BOOTSTRAP_NODE_LINUX=1 tools/build/build \
&& tools/deploy.sh /deploy \
&& rm /deploy/*.dll

FROM dm_base
# rust = base + rustc and i686 target
FROM base AS rust
RUN apt-get install -y --no-install-recommends \
curl && \
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal \
&& ~/.cargo/bin/rustup target add i686-unknown-linux-gnu

EXPOSE 1337
# rust_g = base + rust_g compiled to /rust_g
FROM rust AS rust_g
WORKDIR /rust_g

RUN apt-get update \
&& apt-get install -y --no-install-recommends software-properties-common \
&& add-apt-repository ppa:ubuntu-toolchain-r/test \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get dist-upgrade -y \
&& apt-get install -y --no-install-recommends \
libmariadb2 \
mariadb-client \
libssl1.0.0 \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /root/.byond/bin
RUN apt-get install -y --no-install-recommends \
pkg-config:i386 \
libssl-dev:i386 \
gcc-multilib \
git \
&& git init \
&& git remote add origin https://github.com/tgstation/rust-g

COPY dependencies.sh .

RUN . ./dependencies.sh \
&& git fetch --depth 1 origin "${RUST_G_VERSION}" \
&& git checkout FETCH_HEAD \
&& env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target i686-unknown-linux-gnu

# final = byond + runtime deps + rust_g + build
FROM byond
WORKDIR /tgstation

RUN apt-get install -y --no-install-recommends \
libssl1.0.0:i386 \
zlib1g:i386

COPY --from=rust_g /rust_g/target/release/librust_g.so /root/.byond/bin/rust_g
COPY --from=build /deploy ./
COPY --from=rust_g /rust_g/target/i686-unknown-linux-gnu/release/librust_g.so ./librust_g.so

VOLUME [ "/tgstation/config", "/tgstation/data" ]

ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ]
EXPOSE 1337
5 changes: 1 addition & 4 deletions code/__HELPERS/priority_announce.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,7 @@

for(var/mob/M in GLOB.player_list)
if(!isnewplayer(M) && M.can_hear())
var/complete_msg = "<span class='big bold'><font color = red>[html_encode(title)]</font color><BR>[html_encode(message)]</span><BR>"
if(from)
complete_msg += "<span class='alert'>-[from.name] ([from.job])</span>"
to_chat(M, complete_msg)
to_chat(M, "<span class='minorannounce'><font color = red>[title]</font color><BR>[message]</span><BR>[from ? "<span class='alert'>-[from.name] ([from.job])</span>" : null]")
if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
if(alert)
SEND_SOUND(M, sound('sound/misc/notice1.ogg'))
Expand Down
22 changes: 19 additions & 3 deletions code/game/machinery/computer/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,24 @@
if (.)
return

if (!has_communication())
return

. = TRUE

switch (action)
if ("answerMessage")
if (!authenticated(usr))
return
var/answer_index = text2num(params["answer"])
var/message_index = text2num(params["message"])

var/answer_index = params["answer"]
var/message_index = params["message"]

// If either of these aren't numbers, then bad voodoo.
if(!isnum(answer_index) || !isnum(message_index))
message_admins("[ADMIN_LOOKUPFLW(usr)] provided an invalid index type when replying to a message on [src] [ADMIN_JMP(src)]. This should not happen. Please check with a maintainer and/or consult tgui logs.")
CRASH("Non-numeric index provided when answering comms console message.")

if (!answer_index || !message_index || answer_index < 1 || message_index < 1)
return
var/datum/comm_message/message = messages[message_index]
Expand Down Expand Up @@ -336,6 +346,7 @@
var/list/data = list(
"authenticated" = FALSE,
"emagged" = FALSE,
"hasConnection" = has_communication(),
)

var/ui_state = issilicon(user) ? cyborg_state : state
Expand Down Expand Up @@ -453,6 +464,12 @@
"maxMessageLength" = MAX_MESSAGE_LEN,
)

/// Returns whether or not the communications console can communicate with the station
/obj/machinery/computer/communications/proc/has_communication()
var/turf/current_turf = get_turf(src)
var/z_level = current_turf.z
return is_station_level(z_level) || is_centcom_level(z_level)

/obj/machinery/computer/communications/proc/set_state(mob/user, new_state)
if (issilicon(user))
cyborg_state = new_state
Expand Down Expand Up @@ -511,7 +528,6 @@

frequency.post_signal(src, status_signal)


/obj/machinery/computer/communications/Destroy()
GLOB.shuttle_caller_list -= src
SSshuttle.autoEvac()
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/hologram.dm
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ obj/machinery/holopad/secure/Initialize()
if(A)
LAZYADD(callnames[A], I)
callnames -= get_area(src)
var/result = input(usr, "Choose an area to call", "Holocall") as null|anything in sortNames(callnames)
var/result = tgui_input_list(usr, "Choose an area to call", "Holocall", sortNames(callnames))
if(QDELETED(usr) || !result || outgoing_call)
return
if(usr.loc == loc)
Expand Down
Loading

0 comments on commit 7b29807

Please sign in to comment.