From e8af01e9d331ea6753d49cdfb71ecd164cb7309b Mon Sep 17 00:00:00 2001 From: Sergei Shubin Date: Wed, 18 Mar 2026 16:13:45 +0800 Subject: [PATCH] Add QL PM/PMF flags under MISSIONPACK; ignore Debug_TA build dirs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PM_TUTORIAL alias (= PM_SPINTERMISSION, value 6) added under MISSIONPACK - PMF_GRAPPLE_PULL2, PMF_CROUCH_SLIDE, PMF_DOUBLE_JUMP, PMF_AUTOHOP_HELD, PMF_NO_ACTION, PMF_JUMP_SCALE (0x8000–0x100000) added under MISSIONPACK, matching values from qagamex86.dll build 1069 - .gitignore: add Debug_TA/, *.tlog, *.recipe, *.log Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 4 ++++ code/game/bg_public.h | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b3b1eef..6d0cbde 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ Backup/ # Build output directories Debug/ +Debug_TA/ Release/ Release_TA/ x64/ @@ -27,6 +28,9 @@ x64/ *.res *.sbr *.bsc +*.tlog +*.recipe +*.log # Compiled outputs *.exe diff --git a/code/game/bg_public.h b/code/game/bg_public.h index 0dd59db..0214949 100644 --- a/code/game/bg_public.h +++ b/code/game/bg_public.h @@ -129,7 +129,10 @@ typedef enum { PM_DEAD, // no acceleration or turning, but free falling PM_FREEZE, // stuck in place with no control PM_INTERMISSION, // no movement or status bar - PM_SPINTERMISSION // no movement or status bar + PM_SPINTERMISSION, // no movement or status bar +#ifdef MISSIONPACK + PM_TUTORIAL = PM_SPINTERMISSION // QL: tutorial mode (same slot, movement locked) +#endif } pmtype_t; typedef enum { @@ -154,6 +157,16 @@ typedef enum { #define PMF_SCOREBOARD 8192 // spectate as a scoreboard #define PMF_INVULEXPAND 16384 // invulnerability sphere set to full size +#ifdef MISSIONPACK +// QL-specific flags (values matching qagamex86.dll build 1069) +#define PMF_GRAPPLE_PULL2 0x8000 // grapple hook detach / release state +#define PMF_CROUCH_SLIDE 0x10000 // crouch-slide feature active (set from pmove_CrouchSlide at spawn) +#define PMF_DOUBLE_JUMP 0x20000 // double-jump available (set from pmove_DoubleJump at spawn) +#define PMF_AUTOHOP_HELD 0x40000 // jump button held for autohop; inhibits re-jump when not autohop +#define PMF_NO_ACTION 0x80000 // blocks secondary action (PM_CanPerformAction returns false) +#define PMF_JUMP_SCALE 0x100000 // scaled/chain jump velocity accumulation active +#endif + #define PMF_ALL_TIMES (PMF_TIME_WATERJUMP|PMF_TIME_LAND|PMF_TIME_KNOCKBACK) #define MAXTOUCH 32