From a154ff5fb0dd4f80c37a91a6a5887b113b2ca9eb Mon Sep 17 00:00:00 2001 From: "Spring E. Thing" <springething@gmail.com> Date: Wed, 12 Feb 2025 15:45:29 +0000 Subject: [PATCH 1/4] SPR2_DKRA through to SPR2_DKRK (excluding SPR2_DKRF) can now optionally be added to character WAD graphic lumps to customize "gibs" that spawn from a kart explosion. --- src/deh_tables.c | 10 ++++++ src/info.c | 30 ++++++++++++++++ src/info.h | 20 +++++++++++ src/objects/destroyed-kart.cpp | 62 +++++++++++++++++++++------------- 4 files changed, 99 insertions(+), 23 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index 6a5255e8e..a3e08143d 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -370,6 +370,16 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_KART_LEFTOVER", "S_KART_LEFTOVER_NOTIRES", "S_KART_LEFTOVER_CUSTOM", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_A", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_B", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_C", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_D", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_E", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_G", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_H", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_I", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_J", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_K", "S_KART_TIRE1", "S_KART_TIRE2", diff --git a/src/info.c b/src/info.c index 67cbf3fab..fa278dadc 100644 --- a/src/info.c +++ b/src/info.c @@ -796,6 +796,16 @@ char spr2names[NUMPLAYERSPRITES][5] = "XTRA", // Three Faces of Darkness "TALK", // Dialogue "DKRT", // Kart husk + "DKRA", // Kart husk particle (A) + "DKRB", // Kart husk particle (B) + "DKRC", // Kart husk particle (C) + "DKRD", // Kart husk particle (D) + "DKRE", // Kart husk particle (E) + "DKRG", // Kart husk particle (G) + "DKRH", // Kart husk particle (H) + "DKRI", // Kart husk particle (I) + "DKRJ", // Kart husk particle (J) + "DKRK", // Kart husk particle (K) }; playersprite_t free_spr2 = SPR2_FIRSTFREESLOT; @@ -841,6 +851,16 @@ playersprite_t spr2defaults[NUMPLAYERSPRITES] = { 0, // SPR2_XTRA 0, // SPR2_TALK 0, // SPR2_DKRT + 0, // SPR2_DKRA + 0, // SPR2_DKRB + 0, // SPR2_DKRC + 0, // SPR2_DKRD + 0, // SPR2_DKRE + 0, // SPR2_DKRG + 0, // SPR2_DKRH + 0, // SPR2_DKRI + 0, // SPR2_DKRJ + 0, // SPR2_DKRK }; // Doesn't work with g++, needs actionf_p1 (don't modify this comment) @@ -906,6 +926,16 @@ state_t states[NUMSTATES] = {SPR_KART, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KART_LEFTOVER {SPR_DIEF, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KART_LEFTOVER_NOTIRES {SPR_PLAY, SPR2_DKRT,3,{NULL},0,0,S_KART_LEFTOVER_CUSTOM},// S_KART_LEFTOVER_CUSTOM + {SPR_PLAY, SPR2_DKRA, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_A}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_A + {SPR_PLAY, SPR2_DKRB, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_B}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_B + {SPR_PLAY, SPR2_DKRC, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_C}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_C + {SPR_PLAY, SPR2_DKRD, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_D}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_D + {SPR_PLAY, SPR2_DKRE, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_E}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_E + {SPR_PLAY, SPR2_DKRG, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_G}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_G + {SPR_PLAY, SPR2_DKRH, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_H}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_H + {SPR_PLAY, SPR2_DKRI, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_I}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_I + {SPR_PLAY, SPR2_DKRJ, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_J}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_J + {SPR_PLAY, SPR2_DKRK, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_K}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_K {SPR_TIRE, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KART_TIRE1 {SPR_TIRE, 1, -1, {NULL}, 0, 0, S_NULL}, // S_KART_TIRE2 diff --git a/src/info.h b/src/info.h index 884dd3781..d8e63a16d 100644 --- a/src/info.h +++ b/src/info.h @@ -1330,6 +1330,16 @@ typedef enum playersprite SPR2_XTRA, SPR2_TALK, SPR2_DKRT, + SPR2_DKRA, + SPR2_DKRB, + SPR2_DKRC, + SPR2_DKRD, + SPR2_DKRE, + SPR2_DKRG, + SPR2_DKRH, + SPR2_DKRI, + SPR2_DKRJ, + SPR2_DKRK, SPR2_FIRSTFREESLOT, SPR2_LASTFREESLOT = 0x7f, @@ -1391,6 +1401,16 @@ typedef enum state S_KART_LEFTOVER, S_KART_LEFTOVER_NOTIRES, S_KART_LEFTOVER_CUSTOM, + S_KART_LEFTOVER_PARTICLE_CUSTOM_A, + S_KART_LEFTOVER_PARTICLE_CUSTOM_B, + S_KART_LEFTOVER_PARTICLE_CUSTOM_C, + S_KART_LEFTOVER_PARTICLE_CUSTOM_D, + S_KART_LEFTOVER_PARTICLE_CUSTOM_E, + S_KART_LEFTOVER_PARTICLE_CUSTOM_G, + S_KART_LEFTOVER_PARTICLE_CUSTOM_H, + S_KART_LEFTOVER_PARTICLE_CUSTOM_I, + S_KART_LEFTOVER_PARTICLE_CUSTOM_J, + S_KART_LEFTOVER_PARTICLE_CUSTOM_K, S_KART_TIRE1, S_KART_TIRE2, diff --git a/src/objects/destroyed-kart.cpp b/src/objects/destroyed-kart.cpp index c6a5a0946..3e85ef5dd 100644 --- a/src/objects/destroyed-kart.cpp +++ b/src/objects/destroyed-kart.cpp @@ -55,16 +55,32 @@ struct Particle : Mobj bool is_shrapnel() const { return sprite == SPR_KRBM; } - static void spew(Mobj* source) + static void spew(Mobj* source,int pskin) { - auto generic = [&](spritenum_t sprite, int degr, Fixed scale, int momx, const Vec2<int>& momz) + auto generic = [&](spritenum_t sprite, int pskinn, statenum_t spr2state, int degr, Fixed scale, int momx, const Vec2<int>& momz) { Particle* x = source->spawn_from<Particle>({}, MT_KART_PARTICLE); if (x) { - x->sprite = sprite; + if(pskinn >=0 && pskinn < numskins + && spr2state>=0 && spr2state < NUMSTATES && + states[spr2state].frame >=0 && states[spr2state].frame < NUMPLAYERSPRITES*2 && //NUMPLAYERSPRITES*2 being the length of the 'skin_t.sprites' array member + spr2state!=S_NULL && + skins[pskinn].sprites[states[spr2state].frame].numframes > 0){ + + x->skin = (void*)(&skins[pskinn]); + x->state(spr2state); + //frame will be set by state() + } + else{ + //state will be set by mapthing definition + x->sprite = sprite; + x->frame = 0; + } + + x->frame |=FF_SEMIBRIGHT; + x->color = source->color; - x->frame = FF_SEMIBRIGHT; x->lightlevel = 112; x->scale(scale * x->scale()); @@ -79,34 +95,34 @@ struct Particle : Mobj return x; }; - auto part = [&](spritenum_t sprite, int degr, Fixed scale) + auto part = [&](spritenum_t sprite, int pskinn, statenum_t spr2state, int degr, Fixed scale) { - return generic(sprite, degr, scale, 2, {8, 16}); + return generic(sprite, pskinn, spr2state,degr, scale, 2, {8, 16}); }; - auto radial = [&](spritenum_t sprite, int ofs, int spokes, Fixed scale) + auto radial = [&](spritenum_t sprite, int pskinn, statenum_t spr2state, int ofs, int spokes, Fixed scale) { - radial_generic(ofs, spokes, [&](int ang) { part(sprite, ang, scale); }); + radial_generic(ofs, spokes, [&](int ang) { part(sprite, pskinn, spr2state, ang, scale); }); }; constexpr Fixed kSmall = 3*FRACUNIT/2; constexpr Fixed kMedium = 7*FRACUNIT/4; constexpr Fixed kLarge = 2*FRACUNIT; - part(SPR_DIEE, 0, kLarge); // steering wheel - part(SPR_DIEK, 180 + 45, kLarge); // engine + part(SPR_DIEE, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_E, 0, kLarge); // steering wheel + part(SPR_DIEK, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_K, 180 + 45, kLarge); // engine - part(SPR_DIEG, 90, kLarge); // left pedal base - part(SPR_DIED, -90, kLarge); // right pedal base + part(SPR_DIEG, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_G, 90, kLarge); // left pedal base + part(SPR_DIED, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_D, -90, kLarge); // right pedal base - radial(SPR_DIEI, 90, 2, kLarge); // wheel axle bars - radial(SPR_DIEC, 90, 2, kLarge); // pedal tips - radial(SPR_DIEA, 45, 4, kMedium); // tires - radial(SPR_DIEH, 45, 4, kMedium); // struts / springs - radial(SPR_DIEB, 360/12, 6, kSmall); // pipeframe bars - radial(SPR_DIEJ, 360/16, 8, kSmall); // screws + radial(SPR_DIEI, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_I, 90, 2, kLarge); // wheel axle bars + radial(SPR_DIEC, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_C, 90, 2, kLarge); // pedal tips + radial(SPR_DIEA, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_A, 45, 4, kMedium); // tires + radial(SPR_DIEH, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_H, 45, 4, kMedium); // struts / springs + radial(SPR_DIEB, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_B, 360/12, 6, kSmall); // pipeframe bars + radial(SPR_DIEJ, pskin, S_KART_LEFTOVER_PARTICLE_CUSTOM_J, 360/16, 8, kSmall); // screws - radial_generic(0, 6, [&](int degr) { generic(SPR_KRBM, degr, kSmall, 8, {22, 28}); }); // shrapnel + radial_generic(0, 6, [&](int degr) { generic(SPR_KRBM, -1, S_NULL, degr, kSmall, 8, {22, 28}); }); // shrapnel // explosion radial_generic( @@ -317,15 +333,15 @@ struct Kart : Mobj Mobj* p = player(); bool pValid = Mobj::valid(p) && p->player; - bool hasCustomHusk = pValid && skins[p->player->skin].sprites[SPR2_DKRT].numframes; + int pSkin = pValid ? p->player->skin :-1; + bool hasCustomHusk = pSkin >=0 && pSkin < numskins && skins[pSkin].sprites[SPR2_DKRT].numframes; if(hasCustomHusk) { - skin = (void*)(&skins[p->player->skin]); - frame = 0; + skin = (void*)(&skins[pSkin]); } - Particle::spew(this); + Particle::spew(this,pSkin); scale(3*scale()/2); if(hasCustomHusk){ -- GitLab From 643a0ddd943212ebfbe8bc4b1f546512b02554c8 Mon Sep 17 00:00:00 2001 From: "Spring E. Thing" <springething@hotmail.com> Date: Wed, 12 Mar 2025 14:48:18 +0000 Subject: [PATCH 2/4] Whitespace & formatting concerns addressed --- src/objects/destroyed-kart.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/objects/destroyed-kart.cpp b/src/objects/destroyed-kart.cpp index 3e85ef5dd..4e686c33c 100644 --- a/src/objects/destroyed-kart.cpp +++ b/src/objects/destroyed-kart.cpp @@ -62,11 +62,11 @@ struct Particle : Mobj Particle* x = source->spawn_from<Particle>({}, MT_KART_PARTICLE); if (x) { - if(pskinn >=0 && pskinn < numskins - && spr2state>=0 && spr2state < NUMSTATES && - states[spr2state].frame >=0 && states[spr2state].frame < NUMPLAYERSPRITES*2 && //NUMPLAYERSPRITES*2 being the length of the 'skin_t.sprites' array member - spr2state!=S_NULL && - skins[pskinn].sprites[states[spr2state].frame].numframes > 0){ + if( pskinn >= 0 && pskinn < numskins + && spr2state > S_NULL && spr2state < NUMSTATES && + states[spr2state].frame >= 0 && states[spr2state].frame < NUMPLAYERSPRITES * 2 && //'NUMPLAYERSPRITES * 2' being the length of the 'skin_t.sprites' array member + skins[pskinn].sprites[states[spr2state].frame].numframes > 0) + { x->skin = (void*)(&skins[pskinn]); x->state(spr2state); @@ -97,7 +97,7 @@ struct Particle : Mobj auto part = [&](spritenum_t sprite, int pskinn, statenum_t spr2state, int degr, Fixed scale) { - return generic(sprite, pskinn, spr2state,degr, scale, 2, {8, 16}); + return generic(sprite, pskinn, spr2state, degr, scale, 2, {8, 16}); }; auto radial = [&](spritenum_t sprite, int pskinn, statenum_t spr2state, int ofs, int spokes, Fixed scale) @@ -333,7 +333,7 @@ struct Kart : Mobj Mobj* p = player(); bool pValid = Mobj::valid(p) && p->player; - int pSkin = pValid ? p->player->skin :-1; + int pSkin = pValid ? p->player->skin : -1; //rip lyman lineface :-1 bool hasCustomHusk = pSkin >=0 && pSkin < numskins && skins[pSkin].sprites[SPR2_DKRT].numframes; if(hasCustomHusk) -- GitLab From 7fc3da979af18b5458dc581929e3c622556b0c75 Mon Sep 17 00:00:00 2001 From: "Spring E. Thing" <springething@hotmail.com> Date: Wed, 12 Mar 2025 16:56:55 +0000 Subject: [PATCH 3/4] Removed erroneous whitespace addition from previous fix --- src/objects/destroyed-kart.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/objects/destroyed-kart.cpp b/src/objects/destroyed-kart.cpp index 4e686c33c..850baa331 100644 --- a/src/objects/destroyed-kart.cpp +++ b/src/objects/destroyed-kart.cpp @@ -62,7 +62,7 @@ struct Particle : Mobj Particle* x = source->spawn_from<Particle>({}, MT_KART_PARTICLE); if (x) { - if( pskinn >= 0 && pskinn < numskins + if(pskinn >= 0 && pskinn < numskins && spr2state > S_NULL && spr2state < NUMSTATES && states[spr2state].frame >= 0 && states[spr2state].frame < NUMPLAYERSPRITES * 2 && //'NUMPLAYERSPRITES * 2' being the length of the 'skin_t.sprites' array member skins[pskinn].sprites[states[spr2state].frame].numframes > 0) -- GitLab From a4513e48077f3df3f4bf7707ef9c202821f3be34 Mon Sep 17 00:00:00 2001 From: "Spring E. Thing" <springething@hotmail.com> Date: Wed, 12 Mar 2025 16:56:09 +0000 Subject: [PATCH 4/4] Renamed SPR2_DKRT to SPR2_DKRF and S_KART_LEFTOVER_CUSTOM to S_KART_LEFTOVER_PARTICLE_CUSTOM_F --- src/deh_tables.c | 2 +- src/info.c | 6 +++--- src/info.h | 4 ++-- src/objects/destroyed-kart.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index a3e08143d..3effaa372 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -369,12 +369,12 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_KART_LEFTOVER", "S_KART_LEFTOVER_NOTIRES", - "S_KART_LEFTOVER_CUSTOM", "S_KART_LEFTOVER_PARTICLE_CUSTOM_A", "S_KART_LEFTOVER_PARTICLE_CUSTOM_B", "S_KART_LEFTOVER_PARTICLE_CUSTOM_C", "S_KART_LEFTOVER_PARTICLE_CUSTOM_D", "S_KART_LEFTOVER_PARTICLE_CUSTOM_E", + "S_KART_LEFTOVER_PARTICLE_CUSTOM_F", "S_KART_LEFTOVER_PARTICLE_CUSTOM_G", "S_KART_LEFTOVER_PARTICLE_CUSTOM_H", "S_KART_LEFTOVER_PARTICLE_CUSTOM_I", diff --git a/src/info.c b/src/info.c index fa278dadc..5921127d4 100644 --- a/src/info.c +++ b/src/info.c @@ -795,12 +795,12 @@ char spr2names[NUMPLAYERSPRITES][5] = "SIGN", "SIGL", "SSIG", // Finish signpost "XTRA", // Three Faces of Darkness "TALK", // Dialogue - "DKRT", // Kart husk "DKRA", // Kart husk particle (A) "DKRB", // Kart husk particle (B) "DKRC", // Kart husk particle (C) "DKRD", // Kart husk particle (D) "DKRE", // Kart husk particle (E) + "DKRF", // Kart husk particle (F) AKA The kart husk itself "DKRG", // Kart husk particle (G) "DKRH", // Kart husk particle (H) "DKRI", // Kart husk particle (I) @@ -850,12 +850,12 @@ playersprite_t spr2defaults[NUMPLAYERSPRITES] = { SPR2_SIGN, // SPR2_SSIG 0, // SPR2_XTRA 0, // SPR2_TALK - 0, // SPR2_DKRT 0, // SPR2_DKRA 0, // SPR2_DKRB 0, // SPR2_DKRC 0, // SPR2_DKRD 0, // SPR2_DKRE + 0, // SPR2_DKRF 0, // SPR2_DKRG 0, // SPR2_DKRH 0, // SPR2_DKRI @@ -925,12 +925,12 @@ state_t states[NUMSTATES] = {SPR_KART, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KART_LEFTOVER {SPR_DIEF, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KART_LEFTOVER_NOTIRES - {SPR_PLAY, SPR2_DKRT,3,{NULL},0,0,S_KART_LEFTOVER_CUSTOM},// S_KART_LEFTOVER_CUSTOM {SPR_PLAY, SPR2_DKRA, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_A}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_A {SPR_PLAY, SPR2_DKRB, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_B}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_B {SPR_PLAY, SPR2_DKRC, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_C}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_C {SPR_PLAY, SPR2_DKRD, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_D}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_D {SPR_PLAY, SPR2_DKRE, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_E}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_E + {SPR_PLAY, SPR2_DKRF, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_F},// S_KART_LEFTOVER_PARTICLE_CUSTOM_F {SPR_PLAY, SPR2_DKRG, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_G}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_G {SPR_PLAY, SPR2_DKRH, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_H}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_H {SPR_PLAY, SPR2_DKRI, 3, {NULL}, 0, 0, S_KART_LEFTOVER_PARTICLE_CUSTOM_I}, // S_KART_LEFTOVER_PARTICLE_CUSTOM_I diff --git a/src/info.h b/src/info.h index d8e63a16d..4fab2f207 100644 --- a/src/info.h +++ b/src/info.h @@ -1329,12 +1329,12 @@ typedef enum playersprite SPR2_SIGN, SPR2_SIGL, SPR2_SSIG, SPR2_XTRA, SPR2_TALK, - SPR2_DKRT, SPR2_DKRA, SPR2_DKRB, SPR2_DKRC, SPR2_DKRD, SPR2_DKRE, + SPR2_DKRF, SPR2_DKRG, SPR2_DKRH, SPR2_DKRI, @@ -1400,12 +1400,12 @@ typedef enum state S_KART_LEFTOVER, S_KART_LEFTOVER_NOTIRES, - S_KART_LEFTOVER_CUSTOM, S_KART_LEFTOVER_PARTICLE_CUSTOM_A, S_KART_LEFTOVER_PARTICLE_CUSTOM_B, S_KART_LEFTOVER_PARTICLE_CUSTOM_C, S_KART_LEFTOVER_PARTICLE_CUSTOM_D, S_KART_LEFTOVER_PARTICLE_CUSTOM_E, + S_KART_LEFTOVER_PARTICLE_CUSTOM_F, S_KART_LEFTOVER_PARTICLE_CUSTOM_G, S_KART_LEFTOVER_PARTICLE_CUSTOM_H, S_KART_LEFTOVER_PARTICLE_CUSTOM_I, diff --git a/src/objects/destroyed-kart.cpp b/src/objects/destroyed-kart.cpp index 850baa331..20c5a9a09 100644 --- a/src/objects/destroyed-kart.cpp +++ b/src/objects/destroyed-kart.cpp @@ -334,7 +334,7 @@ struct Kart : Mobj Mobj* p = player(); bool pValid = Mobj::valid(p) && p->player; int pSkin = pValid ? p->player->skin : -1; //rip lyman lineface :-1 - bool hasCustomHusk = pSkin >=0 && pSkin < numskins && skins[pSkin].sprites[SPR2_DKRT].numframes; + bool hasCustomHusk = pSkin >=0 && pSkin < numskins && skins[pSkin].sprites[SPR2_DKRF].numframes; if(hasCustomHusk) { @@ -352,7 +352,7 @@ struct Kart : Mobj } health = 1; - state(!hasCustomHusk ? S_KART_LEFTOVER_NOTIRES : S_KART_LEFTOVER_CUSTOM); + state(!hasCustomHusk ? S_KART_LEFTOVER_NOTIRES : S_KART_LEFTOVER_PARTICLE_CUSTOM_F); cooldown(20); burning(burn_duration()); -- GitLab