From 88d6e6add86960941e1d84e7c0b55a77c7e7b722 Mon Sep 17 00:00:00 2001 From: Jack Back Date: Thu, 21 Mar 2024 09:28:02 +0000 Subject: [PATCH] iw5: more cursed macros (#2) --- .gitea/scripts/ci.sh | 2 ++ .gitea/workflows/ci.yml | 2 +- iw5/scripts/mp/_jump.gsc | 15 +++++---------- iw5/scripts/mp/_utility.gsh | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.gitea/scripts/ci.sh b/.gitea/scripts/ci.sh index be11d37..df739ba 100755 --- a/.gitea/scripts/ci.sh +++ b/.gitea/scripts/ci.sh @@ -9,6 +9,7 @@ cd .. # ready for release cp iw4/scripts/mp/_jump.gsc build/iw4 +echo "Created release for IW4" # replace gsc extension with c. It will make gcc very happy mv iw5/scripts/mp/_jump.gsc iw5/scripts/mp/_jump.c @@ -21,3 +22,4 @@ python3 .gitea/scripts/clean.py _jump.in _jump.gsc # ready for release mv _jump.gsc build/iw5/_jump.gsc +echo "Created release for IW5" diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 136f6cf..746ebd0 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: - name: Create release run: | - .gitea/scripts/ci.sh + bash -e .gitea/scripts/ci.sh - name: Upload release uses: actions/upload-artifact@v3 diff --git a/iw5/scripts/mp/_jump.gsc b/iw5/scripts/mp/_jump.gsc index a272ea7..29d565e 100644 --- a/iw5/scripts/mp/_jump.gsc +++ b/iw5/scripts/mp/_jump.gsc @@ -30,7 +30,8 @@ _ON_PLAYER_CNCT_BEGIN player thread jumper(); player thread displaySpeed(); - player thread onPlayerSpawned(); + + _ON_PLAYER_SPAWNED_COROUTINE( player ); _ON_PLAYER_CNCT_END @@ -119,14 +120,8 @@ jumper() } } -onPlayerSpawned() -{ - GENERIC_COROUTINE_END; - - while ( true ) - { - self waittill( "spawned_player" ); +_ON_PLAYER_SPAWNED_BEGIN self setPerk( "specialty_marathon", true, false ); - } -} + +_ON_PLAYER_SPAWNED_END diff --git a/iw5/scripts/mp/_utility.gsh b/iw5/scripts/mp/_utility.gsh index fd4cb7e..0506e39 100644 --- a/iw5/scripts/mp/_utility.gsh +++ b/iw5/scripts/mp/_utility.gsh @@ -55,6 +55,21 @@ } \ } +#define _ON_PLAYER_SPAWNED_COROUTINE(ent) \ + ent thread onPlayerSpawned() + +/* Captures a "spawned" event. Perform your action(s) using the "self" variable */ +#define _ON_PLAYER_SPAWNED_BEGIN onPlayerSpawned() \ + { \ + GENERIC_COROUTINE_END \ + while ( true ) \ + { \ + self waittill( "spawned_player" ); + +#define _ON_PLAYER_SPAWNED_END \ + } \ + } + /* IW4x MP has printConsole Built-in. __VA_OPT__ requires C++20 compliant preprocessor */ /* Do not use the + to concatenate strings, let the GSC VM do it for you */ /* Other clients will have print available */