From d2a53a0e64a3c326092dbfcb4c8bfdb597d0147f Mon Sep 17 00:00:00 2001 From: Lach Date: Thu, 4 Apr 2024 20:41:21 +1100 Subject: [PATCH] Adjust Adventure Air Boosters for 3D models --- src/deh_tables.c | 3 ++- src/info.c | 12 +++++++----- src/info.h | 4 +++- src/objects/adventure-air-booster.c | 2 +- src/r_things.cpp | 9 +++++++-- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index b6e82e0d0..79449d929 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -2449,7 +2449,8 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_ADVENTUREAIRBOOSTER", "S_ADVENTUREAIRBOOSTER_EXHAUST1", "S_ADVENTUREAIRBOOSTER_EXHAUST2", - "S_ADVENTUREAIRBOOSTER_PART", + "S_ADVENTUREAIRBOOSTER_FRAME", + "S_ADVENTUREAIRBOOSTER_ARROW", // Sneaker Panels "S_SNEAKERPANEL", diff --git a/src/info.c b/src/info.c index 18bda54fe..ae7a97959 100644 --- a/src/info.c +++ b/src/info.c @@ -503,6 +503,7 @@ char sprnames[NUMSPRITES + 1][5] = // Adventure Air Booster "ADVR", + "ADVE", // Sneaker Panels "BSTP", @@ -2965,10 +2966,11 @@ state_t states[NUMSTATES] = {SPR_RAIR, FF_ADD|3, 2, {NULL}, 0, 0, S_DASHRING_VERTICAL_FLASH1}, // S_DASHRING_VERTICAL_FLASH2 // Adventure Air Booster - {SPR_ADVR, 17|FF_FULLBRIGHT|FF_ADD, 1, {A_RollAngle}, 8, 0, S_ADVENTUREAIRBOOSTER}, // S_ADVENTUREAIRBOOSTER - {SPR_ADVR, 5|FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_PAPERSPRITE, 10, {NULL}, 4, 2, S_NULL}, // S_ADVENTUREAIRBOOSTER_EXHAUST1 - {SPR_ADVR, 11|FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_PAPERSPRITE, 10, {NULL}, 4, 2, S_NULL}, // S_ADVENTUREAIRBOOSTER_EXHAUST2 - {SPR_ADVR, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_ADVENTUREAIRBOOSTER_PART + {SPR_ADVE, 13|FF_FULLBRIGHT|FF_ADD, 1, {A_RollAngle}, 8, 0, S_ADVENTUREAIRBOOSTER}, // S_ADVENTUREAIRBOOSTER + {SPR_ADVE, 1|FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_PAPERSPRITE, 10, {NULL}, 4, 2, S_NULL}, // S_ADVENTUREAIRBOOSTER_EXHAUST1 + {SPR_ADVE, 7|FF_FULLBRIGHT|FF_ADD|FF_ANIMATE|FF_PAPERSPRITE, 10, {NULL}, 4, 2, S_NULL}, // S_ADVENTUREAIRBOOSTER_EXHAUST2 + {SPR_ADVR, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_ADVENTUREAIRBOOSTER_FRAME + {SPR_ADVE, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_ADVENTUREAIRBOOSTER_ARROW // Sneaker Panels {SPR_BSTP, FF_ANIMATE|FF_GLOBALANIM|FF_FLOORSPRITE|FF_FULLBRIGHT, -1, {NULL}, 5, 2, S_SNEAKERPANEL}, // S_SNEAKERPANEL @@ -16977,7 +16979,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = { // MT_ADVENTUREAIRBOOSTER_PART -1, // doomednum - S_ADVENTUREAIRBOOSTER_PART, // spawnstate + S_ADVENTUREAIRBOOSTER_FRAME, // spawnstate 1000, // spawnhealth S_NULL, // seestate sfx_None, // seesound diff --git a/src/info.h b/src/info.h index d35d2da19..781b88182 100644 --- a/src/info.h +++ b/src/info.h @@ -1042,6 +1042,7 @@ typedef enum sprite // Adventure Air Booster SPR_ADVR, + SPR_ADVE, // Sneaker Panels SPR_BSTP, @@ -3469,7 +3470,8 @@ typedef enum state S_ADVENTUREAIRBOOSTER, S_ADVENTUREAIRBOOSTER_EXHAUST1, S_ADVENTUREAIRBOOSTER_EXHAUST2, - S_ADVENTUREAIRBOOSTER_PART, + S_ADVENTUREAIRBOOSTER_FRAME, + S_ADVENTUREAIRBOOSTER_ARROW, // Sneaker Panels S_SNEAKERPANEL, diff --git a/src/objects/adventure-air-booster.c b/src/objects/adventure-air-booster.c index 9f79db3f4..843d6c0ac 100644 --- a/src/objects/adventure-air-booster.c +++ b/src/objects/adventure-air-booster.c @@ -116,7 +116,7 @@ void Obj_AdventureAirBoosterSetup(mobj_t *mobj, mapthing_t *mthing) yPos = P_ReturnThrustY(NULL, positionAngle, AAB_RADIUS * i) / 2; // with this order of operations, the first arrow we spawn is the right one, then the left one. Angle them accordingly. SpawnPart(); - part->frame |= 4; + P_SetMobjState(part, S_ADVENTUREAIRBOOSTER_ARROW); part->old_angle = part->angle = mobj->angle - (ANGLE_45 * i); } #undef SpawnPart diff --git a/src/r_things.cpp b/src/r_things.cpp index 6c74fadd9..20c111bd0 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -3881,9 +3881,14 @@ boolean R_ThingIsFullDark(mobj_t *thing) boolean R_ThingModelUsesDirectionalLighting(mobj_t *thing) { - if (thing->type == MT_ARKARROW) + switch (thing->type) { - return false; + case MT_ARKARROW: + case MT_ADVENTUREAIRBOOSTER_PART: + return false; + + default: + break; } return true; }