1
0

Removed inlines from combinators

gcc requires external linkage for functions provided to template parameters
This commit is contained in:
Tycho 2014-04-28 10:52:48 -07:00
parent a42480cf82
commit 05fe6d6c58

View File

@ -63,7 +63,7 @@ void InternalMergeBlocks(
/// Combinator used for cBlockArea::msOverwrite merging /// Combinator used for cBlockArea::msOverwrite merging
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorOverwrite(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorOverwrite(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
a_DstType = a_SrcType; a_DstType = a_SrcType;
if (MetaValid) a_DstMeta = a_SrcMeta; if (MetaValid) a_DstMeta = a_SrcMeta;
@ -75,7 +75,7 @@ static inline void MergeCombinatorOverwrite(BLOCKTYPE & a_DstType, BLOCKTYPE a_S
/// Combinator used for cBlockArea::msFillAir merging /// Combinator used for cBlockArea::msFillAir merging
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorFillAir(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorFillAir(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
if (a_DstType == E_BLOCK_AIR) if (a_DstType == E_BLOCK_AIR)
{ {
@ -91,7 +91,7 @@ static inline void MergeCombinatorFillAir(BLOCKTYPE & a_DstType, BLOCKTYPE a_Src
/// Combinator used for cBlockArea::msImprint merging /// Combinator used for cBlockArea::msImprint merging
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorImprint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorImprint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
if (a_SrcType != E_BLOCK_AIR) if (a_SrcType != E_BLOCK_AIR)
{ {
@ -107,7 +107,7 @@ static inline void MergeCombinatorImprint(BLOCKTYPE & a_DstType, BLOCKTYPE a_Src
/// Combinator used for cBlockArea::msLake merging /// Combinator used for cBlockArea::msLake merging
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorLake(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorLake(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
// Sponge is the NOP block // Sponge is the NOP block
if (a_SrcType == E_BLOCK_SPONGE) if (a_SrcType == E_BLOCK_SPONGE)
@ -172,7 +172,7 @@ static inline void MergeCombinatorLake(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcTyp
/** Combinator used for cBlockArea::msSpongePrint merging */ /** Combinator used for cBlockArea::msSpongePrint merging */
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorSpongePrint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorSpongePrint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
// Sponge overwrites nothing, everything else overwrites anything // Sponge overwrites nothing, everything else overwrites anything
if (a_SrcType != E_BLOCK_SPONGE) if (a_SrcType != E_BLOCK_SPONGE)
@ -188,7 +188,7 @@ static inline void MergeCombinatorSpongePrint(BLOCKTYPE & a_DstType, BLOCKTYPE a
/** Combinator used for cBlockArea::msDifference merging */ /** Combinator used for cBlockArea::msDifference merging */
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorDifference(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorDifference(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
if ((a_DstType == a_SrcType) && (!MetaValid || (a_DstMeta == a_SrcMeta))) if ((a_DstType == a_SrcType) && (!MetaValid || (a_DstMeta == a_SrcMeta)))
{ {
@ -208,7 +208,7 @@ static inline void MergeCombinatorDifference(BLOCKTYPE & a_DstType, BLOCKTYPE a_
/** Combinator used for cBlockArea::msMask merging */ /** Combinator used for cBlockArea::msMask merging */
template<bool MetaValid> template<bool MetaValid>
static inline void MergeCombinatorMask(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta) static void MergeCombinatorMask(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIBBLETYPE & a_DstMeta, NIBBLETYPE a_SrcMeta)
{ {
// If the blocks are the same, keep the dest; otherwise replace with air // If the blocks are the same, keep the dest; otherwise replace with air
if ((a_SrcType != a_DstType) || !MetaValid || (a_SrcMeta != a_DstMeta)) if ((a_SrcType != a_DstType) || !MetaValid || (a_SrcMeta != a_DstMeta))