freeslot("sfx_otrx1", "sfx_otrx2", "sfx_otrx3", "sfx_otrx4", "sfx_otrx5", "sfx_otrx6", "sfx_otrx7") -- puyo puyo combo sfx
freeslot("sfx_otrxss") -- sweetspot sound, another puyo puyo sfx

freeslot("SPR_TRXD", "S_OTRICKSPARK_A1", "S_OTRICKSPARK_A2", "S_OTRICKSPARK_A3", "S_OTRICKSPARK_B1", "MT_OTRICKSPARK") -- trick "drift" spark
freeslot("SPR_TRXB", "S_OTRICKFIRE_A", "S_OTRICKFIRE_B", "S_OTRICKFIRE_C", "S_OTRICKFIRE_D", "S_OTRICKFIRE_E", "S_OTRICKFIRE_F", "MT_OTRICKFIRE") -- https://opengameart.org/content/weapon-slash-effect
freeslot("SPR_TRXW", "S_OTRICKWHEEL_A", "S_OTRICKWHEEL_B", "MT_OTRICKWHEEL") -- edited from Aaron0000's reusable HD kart
freeslot("SPR_TRXS", "S_OTRICKSMOKE_A", "S_OTRICKSMOKE_B", "S_OTRICKSMOKE_C", "S_OTRICKSMOKE_D", "S_OTRICKSMOKE_E", "MT_OTRICKSMOKE") -- store smoke

-- "drift" sparks for burst/reuse

mobjinfo[MT_OTRICKSPARK].spawnstate = S_OTRICKSPARK_B1
mobjinfo[MT_OTRICKSPARK].flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP

states[S_OTRICKSPARK_A1] = {SPR_TRXD, FF_FULLBRIGHT|2, 2, nil, 0, 0, S_OTRICKSPARK_A2}
states[S_OTRICKSPARK_A2] = {SPR_TRXD, FF_FULLBRIGHT|FF_TRANS20|1, 1, nil, 0, 0, S_OTRICKSPARK_A3}
states[S_OTRICKSPARK_A3] = {SPR_TRXD, FF_FULLBRIGHT|FF_TRANS50, 1, nil, 0, 0, S_NULL}

states[S_OTRICKSPARK_B1] = {SPR_TRXD, FF_FULLBRIGHT|1, 2, nil, 0, 0, S_OTRICKSPARK_A2}

-- fire wheel for burst/reuse

mobjinfo[MT_OTRICKFIRE].spawnstate = S_OTRICKFIRE_A
mobjinfo[MT_OTRICKFIRE].flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP

states[S_OTRICKFIRE_A] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|A, 1, nil, 0, 0, S_OTRICKFIRE_B}
states[S_OTRICKFIRE_B] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|B, 1, nil, 0, 0, S_OTRICKFIRE_C}
states[S_OTRICKFIRE_C] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|C, 1, nil, 0, 0, S_OTRICKFIRE_D}
states[S_OTRICKFIRE_D] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|D, 1, nil, 0, 0, S_OTRICKFIRE_E}
states[S_OTRICKFIRE_E] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|E, 1, nil, 0, 0, S_OTRICKFIRE_F}
states[S_OTRICKFIRE_F] = {SPR_TRXB, FF_FULLBRIGHT|FF_TRANS80|F, 1, nil, 0, 0, S_OTRICKFIRE_B}

-- nitrous smoke for store/reuse

mobjinfo[MT_OTRICKSMOKE].spawnstate = S_OTRICKSMOKE_A
mobjinfo[MT_OTRICKSMOKE].flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP

states[S_OTRICKSMOKE_A] = {SPR_TRXS, FF_TRANS10|A, 3, nil, 0, 0, S_OTRICKSMOKE_B}
states[S_OTRICKSMOKE_B] = {SPR_TRXS, FF_TRANS30|B, 3, nil, 0, 0, S_OTRICKSMOKE_C}
states[S_OTRICKSMOKE_C] = {SPR_TRXS, FF_TRANS50|C, 3, nil, 0, 0, S_OTRICKSMOKE_D}
states[S_OTRICKSMOKE_D] = {SPR_TRXS, FF_TRANS70|D, 3, nil, 0, 0, S_OTRICKSMOKE_E}
states[S_OTRICKSMOKE_E] = {SPR_TRXS, FF_TRANS90|E, 3, nil, 0, 0, S_NULL}

-- glowing wheel for augment/reuse

mobjinfo[MT_OTRICKWHEEL].spawnstate = S_OTRICKSMOKE_A
mobjinfo[MT_OTRICKWHEEL].flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP

states[S_OTRICKWHEEL_A] = {SPR_TRXW, FF_FULLBRIGHT|FF_TRANS10|A, 1, nil, 0, 0, S_OTRICKWHEEL_B}
states[S_OTRICKWHEEL_B] = {SPR_TRXW, FF_FULLBRIGHT|FF_TRANS10|B, 1, nil, 0, 0, S_OTRICKWHEEL_A}