diff --git a/src/p_mobj.c b/src/p_mobj.c index 5c91e95a2..a99383506 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -13416,16 +13416,14 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean static mobj_t *P_SpawnMobjFromMapThing(mapthing_t *mthing, fixed_t x, fixed_t y, fixed_t z, mobjtype_t i) { - fixed_t relativise = FixedDiv(mthing->scale, mapobjectscale); - mobj_t *mobj = NULL; boolean doangle = true; mobj = P_SpawnMobj(x, y, z, i); mobj->spawnpoint = mthing; - P_SetScale(mobj, FixedMul(mobj->scale, relativise)); - mobj->destscale = FixedMul(mobj->destscale, relativise); + P_SetScale(mobj, FixedMul(mobj->scale, mthing->scale)); + mobj->destscale = FixedMul(mobj->destscale, mthing->scale); if (!P_SetupSpawnedMapThing(mthing, mobj, &doangle)) return mobj; diff --git a/src/p_setup.c b/src/p_setup.c index 22f426c9e..aaa335cef 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -1278,7 +1278,7 @@ static void P_LoadThings(UINT8 *data) mt->options = READUINT16(data); mt->extrainfo = (UINT8)(mt->type >> 12); Tag_FSet(&mt->tags, 0); - mt->scale = mapobjectscale; + mt->scale = FRACUNIT; memset(mt->args, 0, NUMMAPTHINGARGS*sizeof(*mt->args)); memset(mt->stringargs, 0x00, NUMMAPTHINGSTRINGARGS*sizeof(*mt->stringargs)); mt->special = 0; @@ -1783,7 +1783,7 @@ static void ParseTextmapThingParameter(UINT32 i, const char *param, const char * else if (fastcmp(param, "type")) mapthings[i].type = atol(val); else if (fastcmp(param, "scale") || fastcmp(param, "scalex") || fastcmp(param, "scaley")) - mapthings[i].scale = FixedMul(mapobjectscale, FLOAT_TO_FIXED(atof(val))); + mapthings[i].scale = FLOAT_TO_FIXED(atof(val)); // Flags else if (fastcmp(param, "flip") && fastcmp("true", val)) mapthings[i].options |= MTF_OBJECTFLIP; @@ -2731,7 +2731,7 @@ static void P_LoadTextmap(void) mt->z = 0; mt->extrainfo = 0; Tag_FSet(&mt->tags, 0); - mt->scale = mapobjectscale; + mt->scale = FRACUNIT; memset(mt->args, 0, NUMMAPTHINGARGS*sizeof(*mt->args)); memset(mt->stringargs, 0x00, NUMMAPTHINGSTRINGARGS*sizeof(*mt->stringargs)); mt->special = 0;