diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..6ac11f8bd --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,37 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master, develop ] + pull_request: + branches: [ master, develop ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Install dependencies + run: sudo apt install libexpat1-dev libtolua-dev libncurses5-dev libsqlite3-dev libiniparser-dev libcjson-dev libbsd-dev cppcheck shellcheck luarocks clang-tools + - name: Run .travis.yml build script + uses: ktomk/run-travis-yml@v1 + with: + file: .travis.yml + steps: | + install + script + allow-failure: false diff --git a/src/spells.c b/src/spells.c index a6a01513b..5634c5f7e 100644 --- a/src/spells.c +++ b/src/spells.c @@ -500,7 +500,10 @@ static const race *select_familiar(const race * magerace, int level, magic_t mag return rcfixed; } - assert(magerace->familiars[0]); + if (magerace->familiars[0] == NULL) { + log_error("a %s magician is trying to summon a familiar", magerace->_name); + return NULL; + } if (rnd >= 100 - (level * 5)) { retval = magerace->familiars[magiegebiet]; assert(retval); @@ -568,7 +571,7 @@ static int sp_summon_familiar(castorder * co) } rc = select_familiar(caster->_race, cast_level, caster->faction->magiegebiet); if (rc == NULL) { - log_error("could not find suitable familiar for %s.\n", caster->faction->race->_name); + log_error("could not find suitable familiar for %s.\n", unitname(caster)); return 0; }