From 53b48d057c886bde805857452b9aa6f65342046f Mon Sep 17 00:00:00 2001 From: Lach Date: Tue, 15 Aug 2023 22:47:04 +1000 Subject: [PATCH] Rename Lost Colony symbols to Ark Arrows and add 10 new symbol types --- src/deh_tables.c | 78 ++++++++++++++++++-------------- src/info.c | 92 +++++++++++++++++++++++--------------- src/info.h | 91 ++++++++++++++++++++++--------------- src/k_objects.h | 8 ++-- src/objects/CMakeLists.txt | 2 +- src/objects/ark-arrow.c | 49 ++++++++++++++++++++ src/objects/symbol.c | 43 ------------------ src/p_mobj.c | 12 ++--- src/p_setup.c | 7 ++- 9 files changed, 222 insertions(+), 160 deletions(-) create mode 100644 src/objects/ark-arrow.c delete mode 100644 src/objects/symbol.c diff --git a/src/deh_tables.c b/src/deh_tables.c index 410731255..97a78e936 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -4000,39 +4000,49 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_LAMPPOST", "S_MOSSYTREE", - // Lost Colony symbol signs - "S_SYMBOL_0", - "S_SYMBOL_1", - "S_SYMBOL_2", - "S_SYMBOL_3", - "S_SYMBOL_4", - "S_SYMBOL_5", - "S_SYMBOL_6", - "S_SYMBOL_7", - "S_SYMBOL_8", - "S_SYMBOL_9", - "S_SYMBOL_A", - "S_SYMBOL_B", - "S_SYMBOL_C", - "S_SYMBOL_D", - "S_SYMBOL_E", - "S_SYMBOL_F", - "S_SYMBOL_G", - "S_SYMBOL_H", - "S_SYMBOL_I", - "S_SYMBOL_J", - "S_SYMBOL_K", - "S_SYMBOL_L", - "S_SYMBOL_M", - "S_SYMBOL_N", - "S_SYMBOL_O", - "S_SYMBOL_P", - "S_SYMBOL_Q", - "S_SYMBOL_R", - "S_SYMBOL_S", - "S_SYMBOL_T", - "S_SYMBOL_U", - "S_SYMBOL_V", + // Ark Arrows + "S_ARKARROW_0", + "S_ARKARROW_1", + "S_ARKARROW_2", + "S_ARKARROW_3", + "S_ARKARROW_4", + "S_ARKARROW_5", + "S_ARKARROW_6", + "S_ARKARROW_7", + "S_ARKARROW_8", + "S_ARKARROW_9", + "S_ARKARROW_10", + "S_ARKARROW_11", + "S_ARKARROW_12", + "S_ARKARROW_13", + "S_ARKARROW_14", + "S_ARKARROW_15", + "S_ARKARROW_16", + "S_ARKARROW_17", + "S_ARKARROW_18", + "S_ARKARROW_19", + "S_ARKARROW_20", + "S_ARKARROW_21", + "S_ARKARROW_22", + "S_ARKARROW_23", + "S_ARKARROW_24", + "S_ARKARROW_25", + "S_ARKARROW_26", + "S_ARKARROW_27", + "S_ARKARROW_28", + "S_ARKARROW_29", + "S_ARKARROW_30", + "S_ARKARROW_31", + "S_ARKARROW_32", + "S_ARKARROW_33", + "S_ARKARROW_34", + "S_ARKARROW_35", + "S_ARKARROW_36", + "S_ARKARROW_37", + "S_ARKARROW_38", + "S_ARKARROW_39", + "S_ARKARROW_40", + "S_ARKARROW_41", "S_BUMP1", "S_BUMP2", @@ -5601,7 +5611,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t "MT_LAMPPOST", "MT_MOSSYTREE", - "MT_SYMBOL", + "MT_ARKARROW", // Ark Arrows "MT_BUMP", diff --git a/src/info.c b/src/info.c index 508394ef9..a3d358d7e 100644 --- a/src/info.c +++ b/src/info.c @@ -646,7 +646,7 @@ char sprnames[NUMSPRITES + 1][5] = "CRAB", // Crystal Abyss mobs "BRNG", // Chaotix Big Ring - // Lost Colony symbol signs + // Ark Arrows "SYM0", "SYM1", "SYM2", @@ -679,6 +679,16 @@ char sprnames[NUMSPRITES + 1][5] = "SYMT", "SYMU", "SYMV", + "SYMW", + "SYMX", + "SYMY", + "SYMZ", + "ARK0", + "ARK1", + "ARK2", + "ARK3", + "ARK4", + "ARK5", "BUMP", // Player/shell bump "FLEN", // Shell hit graphics stuff @@ -4687,39 +4697,49 @@ state_t states[NUMSTATES] = {SPR_CRAB, 10, -1, {NULL}, 0, 0, S_NULL}, // S_LAMPPOST {SPR_CRAB, 11, -1, {NULL}, 0, 0, S_NULL}, // S_MOSSYTREE - // Lost Colony symbol signs - {SPR_SYM0, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_0 - {SPR_SYM1, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_1 - {SPR_SYM2, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_2 - {SPR_SYM3, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_3 - {SPR_SYM4, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_4 - {SPR_SYM5, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_5 - {SPR_SYM6, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_6 - {SPR_SYM7, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_7 - {SPR_SYM8, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_8 - {SPR_SYM9, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_9 - {SPR_SYMA, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_A - {SPR_SYMB, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_B - {SPR_SYMC, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_C - {SPR_SYMD, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_D - {SPR_SYME, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_E - {SPR_SYMF, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_F - {SPR_SYMG, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_G - {SPR_SYMH, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_H - {SPR_SYMI, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_I - {SPR_SYMJ, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_J - {SPR_SYMK, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_K - {SPR_SYML, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_L - {SPR_SYMM, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_M - {SPR_SYMN, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_N - {SPR_SYMO, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_O - {SPR_SYMP, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_P - {SPR_SYMQ, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_Q - {SPR_SYMR, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_R - {SPR_SYMS, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_S - {SPR_SYMT, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_T - {SPR_SYMU, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_U - {SPR_SYMV, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_SYMBOL_V + // Ark Arrows + {SPR_SYM0, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_0 + {SPR_SYM1, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_1 + {SPR_SYM2, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_2 + {SPR_SYM3, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_3 + {SPR_SYM4, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_4 + {SPR_SYM5, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_5 + {SPR_SYM6, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_6 + {SPR_SYM7, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_7 + {SPR_SYM8, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_8 + {SPR_SYM9, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_9 + {SPR_SYMA, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_10 + {SPR_SYMB, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_11 + {SPR_SYMC, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_12 + {SPR_SYMD, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_13 + {SPR_SYME, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_14 + {SPR_SYMF, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_15 + {SPR_SYMG, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_16 + {SPR_SYMH, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_17 + {SPR_SYMI, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_18 + {SPR_SYMJ, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_19 + {SPR_SYMK, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_20 + {SPR_SYML, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_21 + {SPR_SYMM, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_22 + {SPR_SYMN, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_23 + {SPR_SYMO, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_24 + {SPR_SYMP, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_25 + {SPR_SYMQ, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_26 + {SPR_SYMR, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_27 + {SPR_SYMS, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_28 + {SPR_SYMT, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_29 + {SPR_SYMU, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_30 + {SPR_SYMV, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_31 + {SPR_SYMW, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_32 + {SPR_SYMX, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_33 + {SPR_SYMY, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_34 + {SPR_SYMZ, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_35 + {SPR_ARK0, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_36 + {SPR_ARK1, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_37 + {SPR_ARK2, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_38 + {SPR_ARK3, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_39 + {SPR_ARK4, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_40 + {SPR_ARK5, FF_ANIMATE|FF_PAPERSPRITE, -1, {NULL}, 15, 2, S_NULL}, // S_ARKARROW_41 {SPR_BUMP, FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_BUMP2}, // S_BUMP1 {SPR_BUMP, FF_FULLBRIGHT|1, 3, {NULL}, 0, 0, S_BUMP3}, // S_BUMP2 @@ -26355,9 +26375,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SYMBOL + { // MT_ARKARROW 4094, // doomednum - S_SYMBOL_0, // spawnstate + S_ARKARROW_0, // spawnstate 1000, // spawnhealth S_NULL, // seestate sfx_None, // seesound diff --git a/src/info.h b/src/info.h index a5e84bf56..9dc14922b 100644 --- a/src/info.h +++ b/src/info.h @@ -1199,7 +1199,7 @@ typedef enum sprite SPR_CRAB, // Crystal Abyss mobs SPR_BRNG, // Chaotix Big Ring - // Lost Colony symbol signs + // Ark Arrows SPR_SYM0, SPR_SYM1, SPR_SYM2, @@ -1232,6 +1232,17 @@ typedef enum sprite SPR_SYMT, SPR_SYMU, SPR_SYMV, + SPR_SYMW, + SPR_SYMX, + SPR_SYMY, + SPR_SYMZ, + SPR_ARK0, + SPR_ARK1, + SPR_ARK2, + SPR_ARK3, + SPR_ARK4, + SPR_ARK5, + SPR_BUMP, // Player/shell bump SPR_FLEN, // Shell hit graphics stuff @@ -5142,39 +5153,49 @@ typedef enum state S_LAMPPOST, S_MOSSYTREE, - // Lost Colony symbol signs - S_SYMBOL_0, - S_SYMBOL_1, - S_SYMBOL_2, - S_SYMBOL_3, - S_SYMBOL_4, - S_SYMBOL_5, - S_SYMBOL_6, - S_SYMBOL_7, - S_SYMBOL_8, - S_SYMBOL_9, - S_SYMBOL_A, - S_SYMBOL_B, - S_SYMBOL_C, - S_SYMBOL_D, - S_SYMBOL_E, - S_SYMBOL_F, - S_SYMBOL_G, - S_SYMBOL_H, - S_SYMBOL_I, - S_SYMBOL_J, - S_SYMBOL_K, - S_SYMBOL_L, - S_SYMBOL_M, - S_SYMBOL_N, - S_SYMBOL_O, - S_SYMBOL_P, - S_SYMBOL_Q, - S_SYMBOL_R, - S_SYMBOL_S, - S_SYMBOL_T, - S_SYMBOL_U, - S_SYMBOL_V, + // Ark Arrows + S_ARKARROW_0, + S_ARKARROW_1, + S_ARKARROW_2, + S_ARKARROW_3, + S_ARKARROW_4, + S_ARKARROW_5, + S_ARKARROW_6, + S_ARKARROW_7, + S_ARKARROW_8, + S_ARKARROW_9, + S_ARKARROW_10, + S_ARKARROW_11, + S_ARKARROW_12, + S_ARKARROW_13, + S_ARKARROW_14, + S_ARKARROW_15, + S_ARKARROW_16, + S_ARKARROW_17, + S_ARKARROW_18, + S_ARKARROW_19, + S_ARKARROW_20, + S_ARKARROW_21, + S_ARKARROW_22, + S_ARKARROW_23, + S_ARKARROW_24, + S_ARKARROW_25, + S_ARKARROW_26, + S_ARKARROW_27, + S_ARKARROW_28, + S_ARKARROW_29, + S_ARKARROW_30, + S_ARKARROW_31, + S_ARKARROW_32, + S_ARKARROW_33, + S_ARKARROW_34, + S_ARKARROW_35, + S_ARKARROW_36, + S_ARKARROW_37, + S_ARKARROW_38, + S_ARKARROW_39, + S_ARKARROW_40, + S_ARKARROW_41, S_BUMP1, S_BUMP2, @@ -6778,7 +6799,7 @@ typedef enum mobj_type MT_LAMPPOST, MT_MOSSYTREE, - MT_SYMBOL, // Lost Colony symbol signs + MT_ARKARROW, // Ark Arrows MT_BUMP, diff --git a/src/k_objects.h b/src/k_objects.h index e0ae037f0..b3a8450b8 100644 --- a/src/k_objects.h +++ b/src/k_objects.h @@ -183,10 +183,10 @@ void Obj_BattleUFOBeamThink(mobj_t *beam); void Obj_SpawnPowerUpAura(player_t* player); void Obj_PowerUpAuraThink(mobj_t* mobj); -/* Lost Colony symbol signs */ -void Obj_SymbolSpawn(mobj_t *mobj); -void Obj_SymbolSetup(mobj_t *mobj, mapthing_t *mthing); -void Obj_SymbolThink(mobj_t *mobj); +/* Ark Arrows */ +void Obj_ArkArrowSpawn(mobj_t *mobj); +void Obj_ArkArrowSetup(mobj_t *mobj, mapthing_t *mthing); +void Obj_ArkArrowThink(mobj_t *mobj); /* Dash Rings */ void Obj_RegularDashRingSpawn(mobj_t *mobj); diff --git a/src/objects/CMakeLists.txt b/src/objects/CMakeLists.txt index d7c6abccb..c13c88f4d 100644 --- a/src/objects/CMakeLists.txt +++ b/src/objects/CMakeLists.txt @@ -24,7 +24,7 @@ target_sources(SRB2SDL2 PRIVATE super-flicky.cpp battle-ufo.cpp powerup-aura.cpp - symbol.c + ark-arrow.c dash-rings.c sneaker-panel.c emerald.c diff --git a/src/objects/ark-arrow.c b/src/objects/ark-arrow.c new file mode 100644 index 000000000..4784dfb45 --- /dev/null +++ b/src/objects/ark-arrow.c @@ -0,0 +1,49 @@ +#include "../p_local.h" +#include "../k_objects.h" + +#define ARKARROW_SCALE (2<extravalue1 = mobj->z; + mobj->extravalue2 = FixedMul(mobj->x + mobj->y, mapobjectscale); +} + +void Obj_ArkArrowSetup(mobj_t *mobj, mapthing_t *mthing) +{ + const fixed_t oldHeight = mobj->height; + statenum_t stateNum = mobj->info->spawnstate + mthing->args[0]; + + if (stateNum - mobj->info->spawnstate >= ARKARROW_OPTIONS) + { + CONS_Alert(CONS_WARNING, "Ark Arrow with symbol ID %d is larger than maximum symbol ID (%d)!\n", stateNum, ARKARROW_OPTIONS - 1); + stateNum = mobj->info->spawnstate; + } + + mobj->angle += ANGLE_90; + P_SetScale(mobj, mobj->destscale = 4 * FixedMul(mobj->scale, ARKARROW_SCALE)); + mobj->z += 4 * FixedMul(mapobjectscale, ARKARROW_ZOFFSET) * P_MobjFlip(mobj); + + if (mthing->options & MTF_OBJECTFLIP) + { + mobj->z += oldHeight - mobj->height; + } + + mobj->extravalue1 = mobj->old_z = mobj->z; + P_SetMobjState(mobj, stateNum); +} + +void Obj_ArkArrowThink(mobj_t *mobj) +{ + fixed_t offset = FixedMul(mapobjectscale, + FixedMul(ARKARROW_BOBRANGE, + FixedMul(FINESINE(FixedAngle(leveltime * ARKARROW_BOBSPEED + mobj->extravalue2) >> ANGLETOFINESHIFT) + FRACUNIT, FRACUNIT >> 1) + ) + ); + + mobj->z = mobj->extravalue1 + P_MobjFlip(mobj) * offset; +} diff --git a/src/objects/symbol.c b/src/objects/symbol.c deleted file mode 100644 index 155d18886..000000000 --- a/src/objects/symbol.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "../p_local.h" -#include "../k_objects.h" - -#define SYMBOL_SCALE (2<extravalue1 = mobj->z; - mobj->extravalue2 = FixedMul(mobj->x + mobj->y, mapobjectscale); -} - -void Obj_SymbolSetup(mobj_t *mobj, mapthing_t *mthing) -{ - fixed_t oldHeight = mobj->height; - statenum_t stateNum = mobj->info->spawnstate + (mthing->args[0] % SYMBOL_OPTIONS); - - mobj->angle += ANGLE_90; - P_SetScale(mobj, mobj->destscale = 4 * FixedMul(mobj->scale, SYMBOL_SCALE)); - mobj->z += 4 * FixedMul(mapobjectscale, SYMBOL_ZOFFSET) * P_MobjFlip(mobj); - - if (mthing->options & MTF_OBJECTFLIP) - { - mobj->z += oldHeight - mobj->height; - } - - mobj->extravalue1 = mobj->old_z = mobj->z; - P_SetMobjState(mobj, stateNum); -} - -void Obj_SymbolThink(mobj_t *mobj) -{ - fixed_t offset = FixedMul(mapobjectscale, - FixedMul(SYMBOL_BOBRANGE, - FixedMul(FINESINE(FixedAngle(leveltime * SYMBOL_BOBSPEED + mobj->extravalue2) >> ANGLETOFINESHIFT) + FRACUNIT, FRACUNIT >> 1) - ) - ); - - mobj->z = mobj->extravalue1 + P_MobjFlip(mobj) * offset; -} diff --git a/src/p_mobj.c b/src/p_mobj.c index 003c481a9..47d20059b 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6716,8 +6716,8 @@ static void P_MobjSceneryThink(mobj_t *mobj) return; } break; - case MT_SYMBOL: - Obj_SymbolThink(mobj); + case MT_ARKARROW: + Obj_ArkArrowThink(mobj); break; case MT_VWREF: case MT_VWREB: @@ -10960,8 +10960,8 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) case MT_BATTLEUFO: Obj_SpawnBattleUFOLegs(mobj); break; - case MT_SYMBOL: - Obj_SymbolSpawn(mobj); + case MT_ARKARROW: + Obj_ArkArrowSpawn(mobj); break; case MT_DASHRING: Obj_RegularDashRingSpawn(mobj); @@ -13543,9 +13543,9 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj) Obj_LinkBattleUFOSpawner(mobj); break; } - case MT_SYMBOL: + case MT_ARKARROW: { - Obj_SymbolSetup(mobj, mthing); + Obj_ArkArrowSetup(mobj, mthing); break; } case MT_DASHRING: diff --git a/src/p_setup.c b/src/p_setup.c index 19dd8351e..3f9bfcd2e 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -7250,13 +7250,18 @@ static void P_ConvertBinaryThingTypes(void) case CEILING_SLOPE_THING: mapthings[i].args[0] = mapthings[i].extrainfo; break; - case 4094: // MT_SYMBOL + case 4094: // MT_ARKARROW mapthings[i].args[0] = mapthings[i].extrainfo; if (mapthings[i].options & MTF_OBJECTSPECIAL) { // Special = add 16 to the symbol type mapthings[i].args[0] += 16; } + if (mapthings[i].options & MTF_AMBUSH) + { + // Ambush = add 32 to the symbol type + mapthings[i].args[0] += 32; + } break; default: break;