Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Aerin-of-the-Toast committed Sep 24, 2023
2 parents 4722f3d + 6a7038b commit 78bdd60
Show file tree
Hide file tree
Showing 956 changed files with 678,981 additions and 287,923 deletions.
55 changes: 28 additions & 27 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,36 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends libsdl2-dev libsdl2-ttf-dev \
libsdl2-image-dev libsdl2-mixer-dev libfreetype6-dev build-essential astyle ccache

# [Optional] comment out this section unless you want to compile the Object Creator. Install some QT libraries
RUN apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools


# [Optional] uncomment this section to include dependencies for Windows cross-compilation from Linux
# [Optional] comment out this section unless you want to cross-compile from Linux to Windows
# This section should align with doc/COMPILING/COMPILING.md#cross-compile-to-windows-from-linux
# With the exception of the installation of packages that are already installed earlier in the Dockerfile
# Like: astyle, cmake
# RUN apt-get -y install autoconf automake autopoint bash bison bzip2 flex gettext git g++ \
# gperf intltool libffi-dev libgdk-pixbuf2.0-dev libtool libltdl-dev libssl-dev \
# libxml-parser-perl lzip make mingw-w64 openssl p7zip-full patch perl pkg-config \
# python3 ruby scons sed unzip wget xz-utils g++-multilib libc6-dev-i386 libtool-bin python3-mako
RUN apt-get -y install autoconf automake autopoint bash bison bzip2 flex gettext git g++ \
gperf intltool libffi-dev libgdk-pixbuf2.0-dev libtool libltdl-dev libssl-dev \
libxml-parser-perl lzip make mingw-w64 openssl p7zip-full patch perl pkg-config \
python3 ruby scons sed unzip wget xz-utils g++-multilib libc6-dev-i386 libtool-bin python3-mako

# WORKDIR /opt
# RUN mkdir -p mxe
# RUN mkdir -p libbacktrace
# RUN git clone https://github.com/mxe/mxe.git ./mxe
# WORKDIR /opt/mxe

# # because of https://github.com/mxe/mxe/issues/2659, we have to link python 3 to python
# RUN ln /usr/bin/python3 /usr/bin/python
# # Builds windows version of SDL2 which is required to later cross-compile CDDA.
# RUN make -j4 MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static' \
# MXE_PLUGIN_DIRS=plugins/gcc12 sdl2 sdl2_ttf sdl2_image sdl2_mixer gettext
# WORKDIR /opt/libbacktrace
# RUN wget https://github.com/Qrox/libbacktrace/releases/download/2020-01-03/libbacktrace-x86_64-w64-mingw32.tar.gz
# RUN wget https://github.com/Qrox/libbacktrace/releases/download/2020-01-03/libbacktrace-i686-w64-mingw32.tar.gz
# RUN tar -xzf libbacktrace-x86_64-w64-mingw32.tar.gz --exclude=LICENSE -C /opt/mxe/usr/x86_64-w64-mingw32.static
# RUN tar -xzf libbacktrace-i686-w64-mingw32.tar.gz --exclude=LICENSE -C /opt/mxe/usr/i686-w64-mingw32.static

# #Additional steps to cross compile object_creator. Uncomment this if you want to cross-compile the object cretor
# WORKDIR /opt/mxe
# RUN make MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static' qtbase
# RUN export PATH=/opt/mxe/usr/bin:$PATH
WORKDIR /opt
RUN mkdir -p mxe
RUN mkdir -p libbacktrace
RUN git clone https://github.com/mxe/mxe.git ./mxe
WORKDIR /opt/mxe

# because of https://github.com/mxe/mxe/issues/2659, we have to link python 3 to python
RUN ln /usr/bin/python3 /usr/bin/python
# Builds windows version of SDL2 which is required to later cross-compile CDDA.
RUN make -j4 MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static' \
MXE_PLUGIN_DIRS=plugins/gcc12 sdl2 sdl2_ttf sdl2_image sdl2_mixer gettext
WORKDIR /opt/libbacktrace
RUN wget https://github.com/Qrox/libbacktrace/releases/download/2020-01-03/libbacktrace-x86_64-w64-mingw32.tar.gz
RUN wget https://github.com/Qrox/libbacktrace/releases/download/2020-01-03/libbacktrace-i686-w64-mingw32.tar.gz
RUN tar -xzf libbacktrace-x86_64-w64-mingw32.tar.gz --exclude=LICENSE -C /opt/mxe/usr/x86_64-w64-mingw32.static
RUN tar -xzf libbacktrace-i686-w64-mingw32.tar.gz --exclude=LICENSE -C /opt/mxe/usr/i686-w64-mingw32.static

#Additional steps to cross compile object_creator. comment this out if you don't want to cross-compile the object cretor
WORKDIR /opt/mxe
RUN make MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static' qtbase
RUN export PATH=/opt/mxe/usr/bin:$PATH
2 changes: 1 addition & 1 deletion .github/workflows/matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ jobs:
if: ${{ env.SKIP == 'false' && runner.os == 'Linux' && matrix.os == 'ubuntu-20.04' }}
run: |
sudo apt-get remove --purge -y ccache
curl -sL https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | sudo tar Jxvf - --strip-components 1 -C /usr/bin ccache-4.8-linux-x86_64/ccache
curl -sL https://github.com/ccache/ccache/releases/download/v4.8.3/ccache-4.8.3-linux-x86_64.tar.xz | sudo tar Jxvf - --strip-components 1 -C /usr/bin ccache-4.8.3-linux-x86_64/ccache
ccache --version
- name: set up a mock GCC toolchain root for Clang (Ubuntu)
if: ${{ env.SKIP == 'false' && runner.os == 'Linux' && (matrix.compiler == 'clang++-12') }}
Expand Down
57 changes: 53 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ jobs:
ext: zip
content: application/zip
sound: 1
- name: Windows Object Creator x64
mxe: x86_64
artifact: windows-objectcreator-x64
android: none
os: ubuntu-latest
ext: zip
content: application/zip
- name: Linux Tiles x64
os: ubuntu-20.04
mxe: none
Expand Down Expand Up @@ -105,6 +112,13 @@ jobs:
artifact: linux-curses-x64
ext: tar.gz
content: application/gzip
- name: Linux object creator x64
os: ubuntu-20.04
mxe: none
android: none
artifact: linux-objectcreator-x64
ext: tar.gz
content: application/gzip
- name: macOS Curses Universal Binary (x64 and arm64)
os: macos-12
mxe: none
Expand Down Expand Up @@ -172,11 +186,11 @@ jobs:
run: |
vcpkg integrate install --vcpkg-root '${{ runner.workspace }}\b\vcpkg'
- name: Install dependencies (windows mxe)
if: matrix.mxe != 'none'
if: matrix.mxe != 'none' && matrix.artifact != 'windows-objectcreator-x64'
run: |
sudo apt install gettext
- name: Install MXE
if: matrix.mxe != 'none'
if: matrix.mxe != 'none' && matrix.artifact != 'windows-objectcreator-x64'
run: |
curl -L -o mxe-${{ matrix.mxe }}.tar.xz https://github.com/BrettDong/MXE-GCC/releases/download/mxe-sdl-2-0-20/mxe-${{ matrix.mxe }}.tar.xz
curl -L -o mxe-${{ matrix.mxe }}.tar.xz.sha256 https://github.com/BrettDong/MXE-GCC/releases/download/mxe-sdl-2-0-20/mxe-${{ matrix.mxe }}.tar.xz.sha256
Expand Down Expand Up @@ -222,12 +236,47 @@ jobs:
run: |
lang/compile_mo.sh all
- name: Build CDDA (linux)
if: runner.os == 'Linux' && matrix.mxe == 'none' && matrix.android == 'none'
if: runner.os == 'Linux' && matrix.mxe == 'none' && matrix.android == 'none' && matrix.artifact != 'linux-objectcreator-x64'
run: |
make -j$((`nproc`+0)) TILES=${{ matrix.tiles }} SOUND=${{ matrix.tiles }} RELEASE=1 LOCALIZE=1 LANGUAGES=all BACKTRACE=0 PCH=0 bindist
mv cataclysmdda-0.F.tar.gz cdda-${{ matrix.artifact }}-${{ needs.release.outputs.timestamp }}.tar.gz
- name: Login to GitHub Container Registry
if: matrix.artifact == 'windows-objectcreator-x64' || matrix.artifact == 'linux-objectcreator-x64'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build object creator (windows)
if: matrix.artifact == 'windows-objectcreator-x64'
uses: devcontainers/[email protected]
with:
imageName: ghcr.io/cleverraven/cataclysm-dda/cataclysm-dda-devcontainer
cacheFrom: ghcr.io/cleverraven/cataclysm-dda/cataclysm-dda-devcontainer
push: always
runCmd: |
git config --global --add safe.directory /workspaces/Cataclysm-DDA
make object_creator.exe CROSS="/opt/mxe/usr/bin/x86_64-w64-mingw32.static-" TILES=1 SOUND=1 RELEASE=1 LOCALIZE=1 PREFIX=output PCH=0 MXE_TARGETS='x86_64-w64-mingw32.static' -j4
- name: Build object creator (linux)
if: matrix.artifact == 'linux-objectcreator-x64'
uses: devcontainers/[email protected]
with:
imageName: ghcr.io/cleverraven/cataclysm-dda/cataclysm-dda-devcontainer
cacheFrom: ghcr.io/cleverraven/cataclysm-dda/cataclysm-dda-devcontainer
push: never
runCmd: |
git config --global --add safe.directory /workspaces/Cataclysm-DDA
make -j$((`nproc`+0)) TILES=1 LINTJSON=0 RELEASE=1 object_creator
- name: zip Object Creator (windows)
if: matrix.artifact == 'windows-objectcreator-x64'
run: |
zip cdda-${{ matrix.artifact }}-${{ needs.release.outputs.timestamp }}.${{ matrix.ext }} ./object_creator/object_creator.exe ./object_creator/qt-license.txt
- name: tar Object Creator (linux)
if: matrix.artifact == 'linux-objectcreator-x64'
run: |
tar -czf cdda-${{ matrix.artifact }}-${{ needs.release.outputs.timestamp }}.${{ matrix.ext }} ./object_creator/object_creator ./object_creator/qt-license.txt
- name: Build CDDA (windows mxe)
if: matrix.mxe != 'none'
if: matrix.mxe != 'none' && matrix.artifact != 'windows-objectcreator-x64'
env:
PLATFORM: /opt/mxe/usr/bin/${{ matrix.mxe }}-w64-mingw32.static.gcc12-
run: |
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,8 @@ else
endif
THIRD_PARTY_SOURCES := $(wildcard $(SRC_DIR)/third-party/flatbuffers/*.cpp)
HEADERS := $(wildcard $(SRC_DIR)/*.h)
OBJECT_CREATOR_SOURCES := $(wildcard $object_creator/*.cpp)
OBJECT_CREATOR_HEADERS := $(wildcard $object_creator/*.h)
TESTSRC := $(wildcard tests/*.cpp)
TESTHDR := $(wildcard tests/*.h)
JSON_FORMATTER_SOURCES := $(wildcard tools/format/*.cpp) src/wcwidth.cpp src/json.cpp
Expand All @@ -870,6 +872,8 @@ CLANG_TIDY_PLUGIN_HEADERS := \
ASTYLE_SOURCES := $(sort \
$(SOURCES) \
$(HEADERS) \
$(OBJECT_CREATOR_SOURCES) \
$(OBJECT_CREATOR_HEADERS) \
$(TESTSRC) \
$(TESTHDR) \
$(JSON_FORMATTER_SOURCES) \
Expand Down
25 changes: 25 additions & 0 deletions data/changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ In-game Armor sprite change
Cockroaches flee light, hide under furniture, eat corpses, and breed faster when fed
Cataclysm and game start dates are to be set through scenarios
Friendly NPC crafting by crafting menu
Functionality to drop items off ledges/cliffs onto creatures below
NPC fleeing behaviour adjusted and slightly improved
Adds basic vehicle proficiencies for driving and boating, as well as athletic proficiencies which increase muscle engine output.
Add overheat mechanics to energy guns.
Sound-triggered traps


## Content:
Expand Down Expand Up @@ -78,6 +83,8 @@ Add a synagogue
Adds a chance for small, personal photographs to spawn within people’s wallets and creates a starting pool of 34 snippets from which to pull.
Adds curved road bends, rotaries and rest stops/laybys
JSONify Defense Mode
Adds a new mission to the Exodii
Add boats to river banks


## Interface:
Expand Down Expand Up @@ -135,6 +142,16 @@ Add the Mind Over Matter mod to the CDDA repository
[Magiclysm] Add a spell-using feral human to Magiclysm
[MoM] Add telepathic and telekinetic damage types
[MoM] Mind Over Matter-specific Research facility overhaul
[XE] Paraclesians: Elemental Races
[Railroads] New mod
[MoM] Add Enervation damage type, apply it to Eater and feral vitakinetics
[Magiclysm] Add more than a dozen spells to magiclysm
[Magiclysm] Add fantasy species starting option
[Magiclysm] Add two more playable fantasy species for Magiclysm
JSON-ize faction camp hunting returns
[DinoMod] document lore
[Aftershock] Rebalance energy weapons to use overheat mechanics
[Magiclysm] Add fantasy species ferals


## Balance:
Expand Down Expand Up @@ -165,6 +182,7 @@ Higher dodge skill lowers the stamina cost to dodge
Adds a mutable stream to the mapgen
Limit the times assassins can try to kill you.
Increase plastic variety, adjust plastics to be more realistic in terms of protection
Characters start with basic skills from their previous life


## Bugfixes:
Expand Down Expand Up @@ -233,6 +251,7 @@ Make sure overconfident officers reliably drop their guns
[MoM] Fix zombie telepathic stuns
Fix appliance power drain display right after plugging in/unplugging device
Fix items and furniture being deleted from grappling hook usage
Randomly generated characters are now aged appropriately to their profession


## Performance:
Expand All @@ -241,6 +260,8 @@ Refactor effect types to use map indirection and enums instead of strings
Removes the ludicrous amount of OMs the refugee and research centres define
Fix Nested List lag in crafting menu
Optimize eoc processing and other fixes to speed up waiting near many npcs
Optimize pocket overflow function
Speed up new character screen, particularly when many recipes are known


## Infrastructure:
Expand All @@ -261,12 +282,16 @@ New documentation on how to test proposed changes
Remove charges from solid comestibles
New item categories for martial arts manuals and traps
Update all active items to new tick action system and remove old system
Add ability to merge appliance into grid


## Build:
Support Mac arm64 build
Adds VS Code Dev Containers & Workspace Config
Allow for cross-compiling from Linux to Windows in Devcontainer
Faster local VS builds
Fast Windows iteration with llvm-lib and lld-link
Cross compile object creator from linux to Windows using Devcontainer


## I18N and A11Y:
Expand Down
2 changes: 1 addition & 1 deletion data/json/achievements.json
Original file line number Diff line number Diff line change
Expand Up @@ -883,7 +883,7 @@
"id": "achievement_lvl_4_computer",
"type": "achievement",
"name": "Help Desk",
"description": "Have you tried turning it off and back on again?.",
"description": "Have you tried turning it off and back on again?",
"requirements": [
{
"event_statistic": "num_gains_computer_level_4",
Expand Down
Loading

0 comments on commit 78bdd60

Please sign in to comment.