Compare commits

..

4 commits

740 changed files with 3677 additions and 20046 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
*.tiled-session

View file

@ -1,7 +1,7 @@
stages:
- test
image: debian:bullseye
image: debian:buster
before_script:
- uname -a
@ -17,26 +17,11 @@ imagemagiccheck:
- ./.tools/imagemagiccheck.sh
allow_failure: true
manaverse:
manaplus:
stage: test
image: ubuntu:20.04
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- ./.tools/manaplus.sh master deb_pkg manaverse.log
artifacts:
paths:
- shared
when: always
expire_in: 3 week
old_manaplus:
stage: test
image: ubuntu:20.04
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- ./.tools/manaplus.sh master4old deb_pkg_old manaplus.log
- ./.tools/manaplus.sh
image: debian:stable
artifacts:
paths:
- shared
@ -69,6 +54,8 @@ licensecheck:
testxml:
stage: test
image: ubuntu:18.04
tags:
- glados
script:
- ./.tools/testxml.sh
- pwd

4
.gitmodules vendored
View file

@ -1,6 +1,6 @@
[submodule "music"]
path = music
url = https://git.themanaworld.org/tmw/music.git
url = https://git.themanaworld.org/legacy/music.git
[submodule "mods"]
path = mods
url = https://git.themanaworld.org/tmw/mods.git
url = https://git.themanaworld.org/legacy/mods.git

View file

@ -5,8 +5,7 @@ source ./.tools/init.sh
clientdata_init
aptget_update
aptget_install git-core make xsltproc
aptget_install git-core gcc ca-certificates libxml2-utils make xsltproc
rm -rf tools
gitclone https://git.themanaworld.org/evolved tools.git tools

36
.tools/deploy.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
source ./.tools/init.sh
clientdata_init
aptget_update
aptget_install git-core zip gcc zlib1g-dev ca-certificates libxml2-utils python
rm -rf tools
gitclone https://git.themanaworld.org/evolved tools.git tools
cd clientdata
rm -rf public
mkdir public
cd ..
# FIXME
#rm -rf music
#gitclone https://git.themanaworld.org/evolved music.git music
cd tools/update
# FIXME
./createnew.sh
check_error $?
#./create_music.sh
#check_error $?
cp -r upload/* ../../clientdata/public
cd ../../clientdata
gitclone https://git.themanaworld.org/mana pagesindexgen.git pagesindexgen
cd pagesindexgen
./pagesindexgen.py ../public
check_error $?
ls ../public

22
.tools/downloadlib.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
export zipname="lib.zip"
export libname="$1_$2"
mkdir libdownload
cd libdownload
rm "${zipname}"
../client-data/.tools/retry.sh wget -O "${zipname}" "https://git.themanaworld.org/mana/spm/builds/artifacts/$1/download?job=${libname}"
unzip "${zipname}"
cp -r "bin/${libname}" ..
cd ..
rm -rf /usr/local/spm/bin/${libname}
mkdir -p /usr/local/spm/bin
cp -r libdownload/bin/${libname} /usr/local/spm/bin/
ls /usr/local/spm/bin/${libname}
if [ "$?" != 0 ]; then
echo "Library $1 $2 unpack failed"
exit 1
fi

View file

@ -5,8 +5,7 @@ source ./.tools/init.sh
clientdata_init
aptget_update
aptget_install git-core imagemagick
aptget_install git-core gcc ca-certificates imagemagick
rm -rf tools
gitclone https://git.themanaworld.org/evolved tools.git tools

View file

@ -7,30 +7,6 @@ function check_error {
fi
}
retry_with_increasing_wait()
{
local wait_time=1
while true; do
"$@"
local retval=$?
if [[ $retval -eq 0 || $wait_time -gt 16 ]]; then
break
fi
printf "command %s failed (exit code %d), waiting %d seconds until next try.\n"\
"$*" "$retval" "$wait_time"
sleep "$wait_time"
# 1, 2, 4, 8, 16...
(( wait_time = 2 * wait_time ))
done
return "$retval"
}
function gitclone1 {
echo git clone $2 $3
git clone $2 $3
@ -47,7 +23,19 @@ function gitclone {
export name2=${CI_BUILD_REPO##*@}
export name2=https://${name2%/*}/$2
retry_with_increasing_wait gitclone1 "$name1" "$name2" "$3"
gitclone1 "$name1" "$name2" $3
if [ "$?" != 0 ]; then
sleep 1s
gitclone1 "$name1" "$name2" $3
if [ "$?" != 0 ]; then
sleep 3s
gitclone1 "$name1" "$name2" $3
if [ "$?" != 0 ]; then
sleep 5s
gitclone1 "$name1" "$name2" $3
fi
fi
fi
check_error $?
}
@ -69,20 +57,34 @@ function update_repos {
function aptget_update {
update_repos
retry_with_increasing_wait apt-get -y -qq update
apt-get update
if [ "$?" != 0 ]; then
sleep 1s
apt-get update
if [ "$?" != 0 ]; then
sleep 1s
apt-get update
fi
fi
check_error $?
}
function aptget_install {
retry_with_increasing_wait apt-get -y -qq install $*
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 1s
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 2s
apt-get -y -qq install $*
fi
fi
check_error $?
}
function clientdata_init {
mkdir shared
if [[ "${PWD##*/}" != clientdata && ! -L ../clientdata ]]; then
ln -s "$PWD" ../clientdata
check_error $?
fi
cd ..
ln -s clientdata client-data
check_error $?
}

View file

@ -5,8 +5,7 @@ source ./.tools/init.sh
clientdata_init
aptget_update
aptget_install git-core grep
aptget_install git-core gcc ca-certificates grep
rm -rf tools
gitclone https://git.themanaworld.org/evolved tools.git tools

View file

@ -1,62 +1,33 @@
#!/bin/bash
client_branch="$1"
client_job_name="$2"
logfile="$3"
set -e
source ./.tools/init.sh
clientdata_init
# Stop tzdata from asking to pick a location, hanging the pipeline
export DEBIAN_FRONTEND=noninteractive
aptget_update
# Evidently libcurl3-gnutls ships libcurl4-gnutls.so.4
aptget_install \
x11-utils xdg-utils xsel \
ttf-dejavu-core fonts-liberation \
libcurl3-gnutls \
libsdl-gfx1.2 libsdl-image1.2 libsdl-mixer1.2 libsdl-net1.2 libsdl-ttf2.0 \
aptget_install gcc g++ \
make autoconf automake autopoint gettext \
libxml2-dev libcurl4-gnutls-dev libpng-dev \
libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev \
wget unzip
pwd
ls -la
ls
# --retry-on-host-error unknown option?
wget --retry-connrefused --tries=10 --waitretry=5 \
--progress=dot:mega \
-O "$client_job_name.zip" \
"https://git.themanaworld.org/mana/appimg-builder/-/jobs/artifacts/$client_branch/download?job=$client_job_name"
./clientdata/.tools/downloadlib.sh manaplus master || exit 1
# Docker will cache the unpacked files, so make unzip only extract
# if the archive contains newer ones. The same filesystem will
# most likely contain exctracted MV/M+ from both CI jobs.
unzip -o -u "$client_job_name.zip" -d "$client_job_name"
pushd "$client_job_name"
# Print package sums to troubleshoot docker caching
printf "Using debian packages with the following checksums:\n"
cat deb-sha256checksum.txt
dpkg -i "manaplus-data_latest_all.deb"
dpkg -i "manaplus_latest_amd64.deb"
dpkg -i "manaplus-dbg_latest_amd64.deb"
popd
export HOME=`pwd`/clientdata/shared
PATH="$PATH:/usr/games"
cd manaplus_master || exit 1
export SDL_VIDEODRIVER=dummy
manaplus --version || exit 1
manaplus --validate -u -d clientdata || exit 1
./bin/manaplus --validate -u -d ../clientdata || exit 1
log_path="$HOME/.local/share/mana/$logfile"
if [[ ! -f "$log_path" ]]; then
printf "Error: logfile %s not found\n" "$log_path"
ls "${HOME}/.local/share/mana/manaplus.log" || exit 1
grep -A 10 "Assert:" "${HOME}/.local/share/mana/manaplus.log"
if [ "$?" == 0 ]; then
echo "Asserts found"
exit 1
fi
# grep exits 0 (OK) if it found matches, this condition inverts it
if grep -A 10 "Assert:" "$log_path"; then
echo "Error: Asserts found"
exit 1
fi
cd ..

15
.tools/retry.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/bash
n=0
while true; do
$*
if [ "$?" == 0 ]; then
exit 0
fi
if [[ $n -ge 10 ]]; then
exit -1
fi
sleep 5s
n=$((n+1))
done

View file

@ -5,8 +5,7 @@ source ./.tools/init.sh
clientdata_init
aptget_update
aptget_install git-core libxml2-utils python python-pil python-pyvorbis
aptget_install git-core zip gcc zlib1g-dev ca-certificates libxml2-utils python python-pyvorbis python-ogg python-pil
rm -rf tools
gitclone https://git.themanaworld.org/evolved tools.git tools
@ -17,7 +16,7 @@ check_error $?
export RES=$(cat errors.txt)
if [[ -n "${RES}" ]]; then
echo "xml check failed" >../../../clientdata/shared/error.log
cat errors.txt >>../../../clientdata/shared/error.log
echo ${RES} >>../../../clientdata/shared/error.log
cat ../../../clientdata/shared/error.log
exit 1
fi

18
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,18 @@
# Contributing
*This repository is* ***feature-frozen****. Anything that adds new content will NOT be merged.*
Only patches for the following will be accepted:
## High priority patches
- Missing sprites for already-released content [(green Error boxes)](https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/sprites/error.png).
- XML errors.
## Low priority patches
- Typos.
- Missing or incorrect item stats.
- Missing or incorrect translation information in XML files.
- Mapping errors (tiles on the wrong layer).
- Quest log modifications.
- Missing frames in sprites.
- Misc visual improvements (avatars, icons, ...).

View file

@ -1,13 +1,13 @@
<?xml version="1.0"?>
<chars>
<!-- hide hair color selection -->
<haircolor min="1" max="13"/>
<haircolor min="1" max="1"/>
<!-- hide hair style selection -->
<hairstyle min="1" max="20"/>
<hairstyle min="1" max="1"/>
<!-- hide look selection -->
<look min="1" max="1"/>
<!-- stat selection. 48 / 2 = 24. You start with 1 in all of 6 -> need 24+6 = 30 -->
<stat min="1" max="10" sum="30"/>
<!-- hide race selection -->
<race min="1" max="1"/>
<!-- stat selection -->
<stat min="1" max="10" sum="27"/>
<!-- race selection -->
<race min="1" max="3"/>
</chars>

View file

@ -57,7 +57,7 @@
<effect id="23" audio="env/zap.ogg" particle="graphics/particles/zap.xml"/>
<effect id="24" audio="system/warp.ogg" particle="graphics/particles/magic.teleport.xml"/>
<!-- #kaflosh (rain) hit -->
<effect id="25" audio="magic/kaflosh.ogg" particle="graphics/particles/rain.xml"/>
<effect id="25" particle="graphics/particles/rain.xml" audio="magic/kaflosh.ogg"/>
<effect id="26" particle="graphics/particles/hit.particle.xml"/>
<!-- #frillyar (arrow hail) hit -->
<effect id="27" audio="magic/frillyar.ogg" particle="graphics/particles/arrow-hail.xml"/>
@ -78,8 +78,8 @@
<effect id="42" particle="graphics/particles/magic-dark-explosion.particle.xml"/>
<effect id="43" audio="monsters/pumpkin/pumpkin-explosion.ogg" particle="graphics/particles/monster-pumpkin-explosion.particle.xml"/>
<effect id="44" particle="graphics/particles/object-getitem.particle.xml"/>
<effect id="45" sprite="icons/quest-start.xml"/>
<effect id="46" sprite="icons/quest-continue.xml"/>
<effect id="45" audio="system/quest-start.ogg" sprite="icons/quest-start.xml"/>
<effect id="46" audio="system/quest-continue.ogg" sprite="icons/quest-continue.xml"/>
<effect id="47" audio="system/quest-up.ogg" particle="graphics/particles/questup.particle.xml"/>
<effect id="48" audio="system/quest-done.ogg" particle="graphics/particles/questdone.particle.xml"/>
<effect id="49" particle="graphics/particles/hug.particle.xml"/>
@ -90,18 +90,9 @@
<effect id="54" audio="oblivion.ogg"/>
<effect id="55" particle="graphics/particles/snowball-crit.particle.xml"/>
<effect id="56" audio="system/levelup-long.ogg" particle="graphics/particles/levelup.particle.xml"/>
<effect id="57" particle="graphics/particles/channelling-raise-red.particle.xml"/>
<effect id="58" particle="graphics/particles/channelling-raise-blue.particle.xml"/>
<effect id="59" particle="graphics/particles/channelling-cast-red.particle.xml"/>
<effect id="60" particle="graphics/particles/channelling-cast-blue.particle.xml"/>
<effect id="61" particle="graphics/particles/red-magic-cast.particle.xml"/>
<effect id="69" audio="env/fart.ogg" particle="graphics/particles/python.xml"/>
<effect id="70" audio="monsters/slime/slime-hurt1.ogg" particle="graphics/particles/monster-rotter-hit.xml"/>
<effect id="71" audio="monsters/rotter/crit1.ogg" particle="graphics/particles/monster-rotter-crit.xml"/>
<effect id="72" particle="graphics/particles/rainbow-hit.xml"/>
<effect id="73" audio="system/boom.ogg" particle="graphics/particles/rainbow-crit.xml"/>
<effect id="74" audio="weapons/gun/gun-hit1.ogg"/>
<effect id="75" audio="system/warp.ogg" particle="graphics/particles/magic-blue-teleport.particle.xml"/>
<effect id="69" particle="graphics/particles/python.xml" audio="env/fart.ogg"/>
<effect id="70" particle="graphics/particles/monster-rotter-hit.xml" audio="monsters/slime/slime-hurt1.ogg"/>
<effect id="71" particle="graphics/particles/monster-rotter-crit.xml" audio="monsters/rotter/crit1.ogg"/>
<!-- #betsanc (protect) end -->
<effect id="111" audio="magic/betsanc-off.ogg" particle="graphics/particles/magic.shield.xml"/>
<!-- <effect id="112" particle="graphics/particles/magic.haste-ends.xml"/>-->
@ -119,11 +110,6 @@
<!-- Add the data needed for the electricity boss battle. -->
<effect id="402" audio="system/ship-bell2.ogg"/>
<effect id="403" audio="monsters/bat/bat-hit1.ogg"/>
<effect id="404" audio="env/tiny_bell.ogg"/>
<effect id="405" audio="weapons/beam/beam-crit.ogg" particle="graphics/particles/beam-crit.xml"/>
<effect id="406" audio="env/rubber_duck.ogg"/>
<effect id="407" audio="env/flame.ogg"/>
<effect id="408" audio="env/zap.ogg"/>
<!-- magic v3 spells -->
<!-- #discharge -->
<effect id="500" audio="magic/discharge.ogg" particle="graphics/particles/fire-burst.xml"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 B

View file

Before

Width:  |  Height:  |  Size: 888 B

After

Width:  |  Height:  |  Size: 888 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 772 B

After

Width:  |  Height:  |  Size: 772 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,009 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 792 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 948 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 865 B

Some files were not shown because too many files have changed in this diff Show more