Index: g_spawn.c =================================================================== --- g_spawn.c (revision 15680) +++ g_spawn.c (working copy) @@ -297,13 +297,20 @@ ent = g_edicts; else ent = G_Spawn(); + entities = ED_ParseEdict(entities, ent); + ent->mapNum = entnum++; + + /* Set the position of the entity */ VecToPos(ent->origin, ent->pos); - gi.GridPosToVec(gi.routingMap, ent->pos, ent->origin); - ent->mapNum = entnum++; + /*Call this entity's specific initializer (sets ent->type) */ ED_CallSpawn(ent); + + /* if this entity is not an actor, then center its origin based on its position */ + if (ent->type != ET_BREAKABLE && ent->type != ET_BREAKABLE) + gi.GridPosToVec(gi.routingMap, ent->pos, ent->origin); } /* spawn ai players, if needed */