From ac5cc2eaaa39156b027e64d4a37352f4cacb3715 Mon Sep 17 00:00:00 2001 From: yamamama Date: Tue, 3 Mar 2026 07:38:58 -0500 Subject: [PATCH] Experiment - make ALL sprites use affines Per internal talks --- src/deh_tables.c | 4 ++-- src/k_kart.c | 1 - src/p_pspr.h | 4 ++-- src/p_user.c | 3 --- src/r_defs.h | 2 +- src/r_things.cpp | 2 +- 6 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index 1e7794af7..5f7c4f28f 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -948,7 +948,7 @@ struct int_const_s const INT_CONST[] = { {"FF_HORIZONTALFLIP",FF_HORIZONTALFLIP}, {"FF_PAPERSPRITE",FF_PAPERSPRITE}, {"FF_FLOORSPRITE",FF_FLOORSPRITE}, - {"FF_AFFINESPRITE",FF_AFFINESPRITE}, + {"FF_NOAFFINE",FF_NOAFFINE}, {"FF_BLENDMASK",FF_BLENDMASK}, {"FF_BLENDSHIFT",FF_BLENDSHIFT}, {"FF_ADD",FF_ADD}, @@ -1058,7 +1058,7 @@ struct int_const_s const INT_CONST[] = { {"RF_TRANS90",RF_TRANS90}, {"RF_GHOSTLY",RF_GHOSTLY}, {"RF_GHOSTLYMASK",RF_GHOSTLYMASK}, - {"RF2_AFFINE",RF2_AFFINE}, + {"RF2_NOAFFINE",RF2_NOAFFINE}, // Level flags {"LF_SCRIPTISFILE",LF_SCRIPTISFILE}, diff --git a/src/k_kart.c b/src/k_kart.c index dd41ada6c..e2c79049e 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -5115,7 +5115,6 @@ void K_DoSMonitor(player_t *player, tic_t time) aura->destscale = player->mo->scale; P_SetScale(aura, player->mo->scale); aura->extravalue2 = 1; - aura->renderflags2 |= RF2_AFFINE; } // Rim suggestion: Don't allow already invincible players to chain. diff --git a/src/p_pspr.h b/src/p_pspr.h index faece777a..d508f909e 100644 --- a/src/p_pspr.h +++ b/src/p_pspr.h @@ -90,8 +90,8 @@ extern "C" { /// \brief Frame flags: Flip sprite horizontally #define FF_HORIZONTALFLIP 0x02000000 -/// \brief Frame flags: Mode 7 affines! -#define FF_AFFINESPRITE 0x04000000 +/// \brief Frame flags: Turns off Mode 7-style scaling and rotation +#define FF_NOAFFINE 0x04000000 /// \brief Frame flags - Animate: Simple stateless animation #define FF_ANIMATE 0x10000000 diff --git a/src/p_user.c b/src/p_user.c index 6e874393c..cd150c864 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1263,9 +1263,6 @@ mobj_t *P_SpawnGhostMobjEX(mobj_t *mobj, boolean legacy) if (mobj->player) { - // Players use affine rendering, so match that - ghost->renderflags2 |= RF2_AFFINE; - if(mobj->player->followmobj) { mobj_t *ghost2 = P_SpawnGhostMobj(mobj->player->followmobj); diff --git a/src/r_defs.h b/src/r_defs.h index ccc5dca1d..d0db384f8 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -1038,7 +1038,7 @@ typedef enum typedef enum { - RF2_AFFINE = 0x00000001, // Affine sprite; draws scaling and rotation using a Mode 7 matrix + RF2_NOAFFINE = 0x00000001, // Disables affine drawing for this sprite } renderflags2_t; typedef enum diff --git a/src/r_things.cpp b/src/r_things.cpp index ff37761f5..9408877df 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -4301,7 +4301,7 @@ boolean R_ThingIsPaperSprite(mobj_t *thing) boolean R_ThingIsAffineSprite(mobj_t *thing) { - return (thing->frame & FF_AFFINESPRITE || thing->renderflags2 & RF2_AFFINE); + return (!(thing->frame & FF_NOAFFINE || thing->renderflags2 & RF2_NOAFFINE)); } boolean R_ThingIsFloorSprite(mobj_t *thing)