mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Hardcode Joypolis trick balloons
This commit is contained in:
parent
0f468c4634
commit
61db93db0c
8 changed files with 310 additions and 2 deletions
|
|
@ -4899,6 +4899,38 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
|
|
||||||
// MT_EMFAUCET_PARTICLE
|
// MT_EMFAUCET_PARTICLE
|
||||||
"S_EMFAUCET_PARTICLE",
|
"S_EMFAUCET_PARTICLE",
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED
|
||||||
|
"S_TRICKBALLOON_RED1",
|
||||||
|
"S_TRICKBALLOON_RED2",
|
||||||
|
"S_TRICKBALLOON_RED_POP1",
|
||||||
|
"S_TRICKBALLOON_RED_POP2",
|
||||||
|
"S_TRICKBALLOON_RED_POP3",
|
||||||
|
"S_TRICKBALLOON_RED_GONE",
|
||||||
|
"S_TRICKBALLOON_RED_INFLATE1",
|
||||||
|
"S_TRICKBALLOON_RED_INFLATE2",
|
||||||
|
"S_TRICKBALLOON_RED_INFLATE3",
|
||||||
|
"S_TRICKBALLOON_RED_INFLATE4",
|
||||||
|
"S_TRICKBALLOON_RED_INFLATE5",
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED_POINT
|
||||||
|
"S_TRICKBALLOON_RED_POINT1",
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW
|
||||||
|
"S_TRICKBALLOON_YELLOW1",
|
||||||
|
"S_TRICKBALLOON_YELLOW2",
|
||||||
|
"S_TRICKBALLOON_YELLOW_POP1",
|
||||||
|
"S_TRICKBALLOON_YELLOW_POP2",
|
||||||
|
"S_TRICKBALLOON_YELLOW_POP3",
|
||||||
|
"S_TRICKBALLOON_YELLOW_GONE",
|
||||||
|
"S_TRICKBALLOON_YELLOW_INFLATE1",
|
||||||
|
"S_TRICKBALLOON_YELLOW_INFLATE2",
|
||||||
|
"S_TRICKBALLOON_YELLOW_INFLATE3",
|
||||||
|
"S_TRICKBALLOON_YELLOW_INFLATE4",
|
||||||
|
"S_TRICKBALLOON_YELLOW_INFLATE5",
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW_POINT
|
||||||
|
"S_TRICKBALLOON_YELLOW_POINT1",
|
||||||
};
|
};
|
||||||
|
|
||||||
// RegEx to generate this from info.h: ^\tMT_([^,]+), --> \t"MT_\1",
|
// RegEx to generate this from info.h: ^\tMT_([^,]+), --> \t"MT_\1",
|
||||||
|
|
@ -6161,6 +6193,11 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
||||||
"MT_EMFAUCET_DRIP",
|
"MT_EMFAUCET_DRIP",
|
||||||
"MT_EMFAUCET_PARTICLE",
|
"MT_EMFAUCET_PARTICLE",
|
||||||
"MT_EMRAINGEN",
|
"MT_EMRAINGEN",
|
||||||
|
|
||||||
|
"MT_TRICKBALLOON_RED",
|
||||||
|
"MT_TRICKBALLOON_RED_POINT",
|
||||||
|
"MT_TRICKBALLOON_YELLOW",
|
||||||
|
"MT_TRICKBALLOON_YELLOW_POINT",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *const MOBJFLAG_LIST[] = {
|
const char *const MOBJFLAG_LIST[] = {
|
||||||
|
|
|
||||||
140
src/info.c
140
src/info.c
|
|
@ -1015,6 +1015,10 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"EMR3",
|
"EMR3",
|
||||||
"EMFC",
|
"EMFC",
|
||||||
|
|
||||||
|
// Joypolis Trick Balloons
|
||||||
|
"TKBR",
|
||||||
|
"TKBY",
|
||||||
|
|
||||||
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
||||||
"VIEW",
|
"VIEW",
|
||||||
};
|
};
|
||||||
|
|
@ -5774,6 +5778,38 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
// MT_EMFAUCET_PARTICLE
|
// MT_EMFAUCET_PARTICLE
|
||||||
{SPR_EMFC, 2, -1, {NULL}, 0, 0, S_EMFAUCET_PARTICLE}, // S_EMFAUCET_PARTICLE
|
{SPR_EMFC, 2, -1, {NULL}, 0, 0, S_EMFAUCET_PARTICLE}, // S_EMFAUCET_PARTICLE
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED
|
||||||
|
{SPR_TKBR, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED2}, // S_TRICKBALLOON_RED1
|
||||||
|
{SPR_TKBR, 1, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED1},
|
||||||
|
{SPR_TKBR, 2, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_POP2}, // S_TRICKBALLOON_RED_POP1
|
||||||
|
{SPR_TKBR, 3, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_POP3},
|
||||||
|
{SPR_TKBR, 4, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_GONE},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_INFLATE1}, // S_TRICKBALLOON_RED_GONE
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_INFLATE2}, // S_TRICKBALLOON_RED_INFLATE1
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_INFLATE3},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_INFLATE4},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED_INFLATE5},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_RED1},
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED_POINT
|
||||||
|
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_TRICKBALLOON_RED_POINT1}, // S_TRICKBALLOON_RED_POINT1
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW
|
||||||
|
{SPR_TKBY, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW2}, // S_TRICKBALLOON_YELLOW1
|
||||||
|
{SPR_TKBY, 1, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW1},
|
||||||
|
{SPR_TKBY, 2, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_POP2}, // S_TRICKBALLOON_YELLOW_POP1
|
||||||
|
{SPR_TKBY, 3, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_POP3},
|
||||||
|
{SPR_TKBY, 4, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_GONE},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_INFLATE1}, // S_TRICKBALLOON_YELLOW_GONE
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_INFLATE2}, // S_TRICKBALLOON_YELLOW_INFLATE1
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_INFLATE3},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_INFLATE4},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_INFLATE5},
|
||||||
|
{SPR_NULL, 0, 2, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW1},
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW_POINT
|
||||||
|
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_TRICKBALLOON_YELLOW_POINT1}, // S_TRICKBALLOON_YELLOW_POINT1
|
||||||
};
|
};
|
||||||
|
|
||||||
mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
@ -33052,6 +33088,110 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_SCENERY, // flags
|
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_SCENERY, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
{ // MT_TRICKBALLOON_RED
|
||||||
|
2764, // doomednum
|
||||||
|
S_TRICKBALLOON_RED1, // spawnstate
|
||||||
|
1, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
0, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_s3k77, // deathsound
|
||||||
|
0, // speed
|
||||||
|
96*FRACUNIT, // radius
|
||||||
|
128*FRACUNIT, // height
|
||||||
|
0, // dispoffset
|
||||||
|
0, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SPECIAL|MF_NOGRAVITY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
{ // MT_TRICKBALLOON_RED_POINT
|
||||||
|
-1, // doomednum
|
||||||
|
S_TRICKBALLOON_RED_POINT1, // spawnstate
|
||||||
|
1, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
0, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
32*FRACUNIT, // radius
|
||||||
|
64*FRACUNIT, // height
|
||||||
|
0, // dispoffset
|
||||||
|
0, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOGRAVITY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
{ // MT_TRICKBALLOON_YELLOW
|
||||||
|
2765, // doomednum
|
||||||
|
S_TRICKBALLOON_YELLOW1, // spawnstate
|
||||||
|
1, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
0, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_s3k77, // deathsound
|
||||||
|
0, // speed
|
||||||
|
96*FRACUNIT, // radius
|
||||||
|
128*FRACUNIT, // height
|
||||||
|
0, // dispoffset
|
||||||
|
0, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SPECIAL|MF_NOGRAVITY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
{ // MT_TRICKBALLOON_YELLOW_POINT
|
||||||
|
-1, // doomednum
|
||||||
|
S_TRICKBALLOON_YELLOW_POINT1, // spawnstate
|
||||||
|
1, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
0, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
32*FRACUNIT, // radius
|
||||||
|
64*FRACUNIT, // height
|
||||||
|
0, // dispoffset
|
||||||
|
0, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOGRAVITY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
41
src/info.h
41
src/info.h
|
|
@ -1569,6 +1569,10 @@ typedef enum sprite
|
||||||
SPR_EMR3,
|
SPR_EMR3,
|
||||||
SPR_EMFC,
|
SPR_EMFC,
|
||||||
|
|
||||||
|
// Joypolis Trick Balloon
|
||||||
|
SPR_TKBR,
|
||||||
|
SPR_TKBY,
|
||||||
|
|
||||||
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
// First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later
|
||||||
SPR_VIEW,
|
SPR_VIEW,
|
||||||
|
|
||||||
|
|
@ -6199,6 +6203,38 @@ typedef enum state
|
||||||
// MT_EMFAUCET_PARTICLE
|
// MT_EMFAUCET_PARTICLE
|
||||||
S_EMFAUCET_PARTICLE,
|
S_EMFAUCET_PARTICLE,
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED
|
||||||
|
S_TRICKBALLOON_RED1,
|
||||||
|
S_TRICKBALLOON_RED2,
|
||||||
|
S_TRICKBALLOON_RED_POP1,
|
||||||
|
S_TRICKBALLOON_RED_POP2,
|
||||||
|
S_TRICKBALLOON_RED_POP3,
|
||||||
|
S_TRICKBALLOON_RED_GONE,
|
||||||
|
S_TRICKBALLOON_RED_INFLATE1,
|
||||||
|
S_TRICKBALLOON_RED_INFLATE2,
|
||||||
|
S_TRICKBALLOON_RED_INFLATE3,
|
||||||
|
S_TRICKBALLOON_RED_INFLATE4,
|
||||||
|
S_TRICKBALLOON_RED_INFLATE5,
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_RED_POINT
|
||||||
|
S_TRICKBALLOON_RED_POINT1,
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW
|
||||||
|
S_TRICKBALLOON_YELLOW1,
|
||||||
|
S_TRICKBALLOON_YELLOW2,
|
||||||
|
S_TRICKBALLOON_YELLOW_POP1,
|
||||||
|
S_TRICKBALLOON_YELLOW_POP2,
|
||||||
|
S_TRICKBALLOON_YELLOW_POP3,
|
||||||
|
S_TRICKBALLOON_YELLOW_GONE,
|
||||||
|
S_TRICKBALLOON_YELLOW_INFLATE1,
|
||||||
|
S_TRICKBALLOON_YELLOW_INFLATE2,
|
||||||
|
S_TRICKBALLOON_YELLOW_INFLATE3,
|
||||||
|
S_TRICKBALLOON_YELLOW_INFLATE4,
|
||||||
|
S_TRICKBALLOON_YELLOW_INFLATE5,
|
||||||
|
|
||||||
|
// MT_TRICKBALLOON_YELLOW_POINT
|
||||||
|
S_TRICKBALLOON_YELLOW_POINT1,
|
||||||
|
|
||||||
S_FIRSTFREESLOT,
|
S_FIRSTFREESLOT,
|
||||||
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
|
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
|
||||||
NUMSTATES
|
NUMSTATES
|
||||||
|
|
@ -7481,6 +7517,11 @@ typedef enum mobj_type
|
||||||
MT_EMFAUCET_PARTICLE,
|
MT_EMFAUCET_PARTICLE,
|
||||||
MT_EMRAINGEN,
|
MT_EMRAINGEN,
|
||||||
|
|
||||||
|
MT_TRICKBALLOON_RED,
|
||||||
|
MT_TRICKBALLOON_RED_POINT,
|
||||||
|
MT_TRICKBALLOON_YELLOW,
|
||||||
|
MT_TRICKBALLOON_YELLOW_POINT,
|
||||||
|
|
||||||
MT_FIRSTFREESLOT,
|
MT_FIRSTFREESLOT,
|
||||||
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
|
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
|
||||||
NUMMOBJTYPES
|
NUMMOBJTYPES
|
||||||
|
|
|
||||||
|
|
@ -354,6 +354,10 @@ void Obj_EMZFaucetThink(mobj_t *mo);
|
||||||
void Obj_EMZDripDeath(mobj_t *mo);
|
void Obj_EMZDripDeath(mobj_t *mo);
|
||||||
void Obj_EMZRainGenerator(mobj_t *mo);
|
void Obj_EMZRainGenerator(mobj_t *mo);
|
||||||
|
|
||||||
|
/* Joypolis Trick Balloons */
|
||||||
|
void Obj_TrickBalloonMobjSpawn(mobj_t* mobj);
|
||||||
|
void Obj_TrickBalloonTouchSpecial(mobj_t* special, mobj_t* toucher);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ target_sources(SRB2SDL2 PRIVATE
|
||||||
fuel.cpp
|
fuel.cpp
|
||||||
rocks.cpp
|
rocks.cpp
|
||||||
emz-faucet.cpp
|
emz-faucet.cpp
|
||||||
|
trick-balloon.c
|
||||||
)
|
)
|
||||||
|
|
||||||
add_subdirectory(versus)
|
add_subdirectory(versus)
|
||||||
|
|
|
||||||
76
src/objects/trick-balloon.c
Normal file
76
src/objects/trick-balloon.c
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
// DR. ROBOTNIK'S RING RACERS
|
||||||
|
//-------------------------------
|
||||||
|
// Copyright (C) 2024 by Kart Krew
|
||||||
|
//
|
||||||
|
// This program is free software distributed under the
|
||||||
|
// terms of the GNU General Public License, version 2.
|
||||||
|
// See the 'LICENSE' file for more details.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/// \brief Joypolis Trick Balloons
|
||||||
|
|
||||||
|
#include "../info.h"
|
||||||
|
#include "../doomdef.h"
|
||||||
|
#include "../g_game.h"
|
||||||
|
#include "../p_local.h"
|
||||||
|
#include "../k_kart.h"
|
||||||
|
#include "../k_objects.h"
|
||||||
|
#include "../s_sound.h"
|
||||||
|
|
||||||
|
void Obj_TrickBalloonMobjSpawn(mobj_t* mobj)
|
||||||
|
{
|
||||||
|
mobjtype_t spawntype;
|
||||||
|
switch (mobj->type)
|
||||||
|
{
|
||||||
|
case MT_TRICKBALLOON_RED:
|
||||||
|
spawntype = MT_TRICKBALLOON_RED_POINT;
|
||||||
|
break;
|
||||||
|
case MT_TRICKBALLOON_YELLOW:
|
||||||
|
spawntype = MT_TRICKBALLOON_YELLOW_POINT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
P_SpawnMobj(mobj->x, mobj->y, mobj->z, spawntype);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Obj_TrickBalloonTouchSpecial(mobj_t* special, mobj_t* toucher)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (special->state == &states[S_TRICKBALLOON_RED1] || special->state == &states[S_TRICKBALLOON_RED2])
|
||||||
|
{
|
||||||
|
fixed_t vspeed = 32 << FRACBITS;
|
||||||
|
|
||||||
|
if (toucher->player && toucher->player)
|
||||||
|
{
|
||||||
|
toucher->player->trickpanel = 1;
|
||||||
|
toucher->player->pflags |= PF_TRICKDELAY;
|
||||||
|
toucher->player->tricktime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
K_DoPogoSpring(toucher, vspeed, 0);
|
||||||
|
P_InstaThrust(toucher, toucher->angle, 42 * special->scale);
|
||||||
|
|
||||||
|
S_StartSound(special, special->info->deathsound);
|
||||||
|
P_SetMobjState(special, S_TRICKBALLOON_RED_POP1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (special->state == &states[S_TRICKBALLOON_YELLOW1] || special->state == &states[S_TRICKBALLOON_YELLOW2])
|
||||||
|
{
|
||||||
|
fixed_t vspeed = 16 << FRACBITS;
|
||||||
|
|
||||||
|
if (toucher->player && toucher->player)
|
||||||
|
{
|
||||||
|
toucher->player->trickpanel = 1;
|
||||||
|
toucher->player->pflags |= PF_TRICKDELAY;
|
||||||
|
toucher->player->tricktime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
K_DoPogoSpring(toucher, vspeed, 0);
|
||||||
|
P_InstaThrust(toucher, toucher->angle, 42 * special->scale);
|
||||||
|
|
||||||
|
S_StartSound(special, special->info->deathsound);
|
||||||
|
P_SetMobjState(special, S_TRICKBALLOON_YELLOW_POP1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1015,6 +1015,11 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case MT_TRICKBALLOON_RED:
|
||||||
|
case MT_TRICKBALLOON_YELLOW:
|
||||||
|
Obj_TrickBalloonTouchSpecial(special, toucher);
|
||||||
|
return;
|
||||||
|
|
||||||
default: // SOC or script pickup
|
default: // SOC or script pickup
|
||||||
P_SetTarget(&special->target, toucher);
|
P_SetTarget(&special->target, toucher);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -11838,6 +11838,10 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
||||||
case MT_EMROCKS:
|
case MT_EMROCKS:
|
||||||
Obj_LinkRocks(mobj);
|
Obj_LinkRocks(mobj);
|
||||||
break;
|
break;
|
||||||
|
case MT_TRICKBALLOON_RED:
|
||||||
|
case MT_TRICKBALLOON_YELLOW:
|
||||||
|
Obj_TrickBalloonMobjSpawn(mobj);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue