Skip to content

Commit

Permalink
Convert nodeid to uint8
Browse files Browse the repository at this point in the history
  • Loading branch information
Auburn committed May 10, 2024
1 parent 53cfcd7 commit ccd1d10
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 23 deletions.
10 changes: 6 additions & 4 deletions include/FastNoise/Metadata.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ namespace FastNoise
std::function<bool( Generator*, SmartNodeArg<> )> setNodeFunc;
};

using node_id = uint8_t;

static std::pair<int32_t, const char*> DebugCheckVectorStorageSize( int i );

virtual ~Metadata() = default;
Expand All @@ -151,7 +153,7 @@ namespace FastNoise
}

/// <returns>Metadata for given Metadata::id</returns>
static const Metadata* GetFromId( uint16_t nodeId )
static const Metadata* GetFromId( node_id nodeId )
{
// Metadata not loaded yet
// Don't try to create nodes from metadata during static initialisation
Expand Down Expand Up @@ -219,7 +221,7 @@ namespace FastNoise
/// <returns>SmartNode<T> is guaranteed not nullptr</returns>
virtual SmartNode<> CreateNode( FastSIMD::FeatureSet maxFeatureSet = FastSIMD::FeatureSet::Max ) const = 0;

uint16_t id;
node_id id;
Vector<MemberVariable> memberVariables;
Vector<MemberNodeLookup> memberNodeLookups;
Vector<MemberHybrid> memberHybrids;
Expand All @@ -239,11 +241,11 @@ namespace FastNoise
static constexpr float kDefaultUiDragSpeedInt = 0.2f;

private:
static uint16_t AddMetadata( const Metadata* newMetadata )
static node_id AddMetadata( const Metadata* newMetadata )
{
sAllMetadata.push_back( newMetadata );

return (uint16_t)sAllMetadata.size() - 1;
return (node_id)sAllMetadata.size() - 1;
}

static Vector<const Metadata*> sAllMetadata;
Expand Down
28 changes: 14 additions & 14 deletions src/FastNoise/FastNoise_C.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ int fnGetMetadataCount()

const char* fnGetMetadataName( int id )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
return metadata->name;
}
Expand All @@ -111,7 +111,7 @@ const char* fnGetMetadataName( int id )

void* fnNewFromMetadata( int id, unsigned simdLevel )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
return new FastNoise::SmartNode<>( metadata->CreateNode( (FastSIMD::FeatureSet)simdLevel ) );
}
Expand All @@ -120,7 +120,7 @@ void* fnNewFromMetadata( int id, unsigned simdLevel )

int fnGetMetadataVariableCount( int id )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
return (int)metadata->memberVariables.size();
}
Expand All @@ -129,7 +129,7 @@ int fnGetMetadataVariableCount( int id )

const char* fnGetMetadataVariableName( int id, int variableIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)variableIndex < metadata->memberVariables.size() )
{
Expand All @@ -142,7 +142,7 @@ const char* fnGetMetadataVariableName( int id, int variableIndex )

int fnGetMetadataVariableType( int id, int variableIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)variableIndex < metadata->memberVariables.size() )
{
Expand All @@ -155,7 +155,7 @@ int fnGetMetadataVariableType( int id, int variableIndex )

int fnGetMetadataVariableDimensionIdx( int id, int variableIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)variableIndex < metadata->memberVariables.size() )
{
Expand All @@ -168,7 +168,7 @@ int fnGetMetadataVariableDimensionIdx( int id, int variableIndex )

int fnGetMetadataEnumCount( int id, int variableIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)variableIndex < metadata->memberVariables.size() )
{
Expand All @@ -181,7 +181,7 @@ int fnGetMetadataEnumCount( int id, int variableIndex )

const char* fnGetMetadataEnumName( int id, int variableIndex, int enumIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)variableIndex < metadata->memberVariables.size() )
{
Expand Down Expand Up @@ -218,7 +218,7 @@ bool fnSetVariableIntEnum( void* node, int variableIndex, int value )

int fnGetMetadataNodeLookupCount( int id )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
return (int)metadata->memberNodeLookups.size();
}
Expand All @@ -227,7 +227,7 @@ int fnGetMetadataNodeLookupCount( int id )

const char* fnGetMetadataNodeLookupName( int id, int nodeLookupIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)nodeLookupIndex < metadata->memberNodeLookups.size() )
{
Expand All @@ -240,7 +240,7 @@ const char* fnGetMetadataNodeLookupName( int id, int nodeLookupIndex )

int fnGetMetadataNodeLookupDimensionIdx( int id, int nodeLookupIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)nodeLookupIndex < metadata->memberNodeLookups.size() )
{
Expand All @@ -263,7 +263,7 @@ bool fnSetNodeLookup( void* node, int nodeLookupIndex, const void* nodeLookup )

int fnGetMetadataHybridCount( int id )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
return (int)metadata->memberHybrids.size();
}
Expand All @@ -272,7 +272,7 @@ int fnGetMetadataHybridCount( int id )

const char* fnGetMetadataHybridName( int id, int hybridIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)hybridIndex < metadata->memberHybrids.size() )
{
Expand All @@ -285,7 +285,7 @@ const char* fnGetMetadataHybridName( int id, int hybridIndex )

int fnGetMetadataHybridDimensionIdx( int id, int hybridIndex )
{
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (uint16_t)id ) )
if( const FastNoise::Metadata* metadata = FastNoise::Metadata::GetFromId( (FastNoise::Metadata::node_id)id ) )
{
if( (size_t)hybridIndex < metadata->memberHybrids.size() )
{
Expand Down
10 changes: 5 additions & 5 deletions src/FastNoise/Metadata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ bool SerialiseNodeDataInternal( NodeData* nodeData, bool fixUp, std::vector<uint
{
// UINT16_MAX where node ID should be
// Referenced by index in reference array, array ordering will match on decode
AddToDataStream( dataStream, std::numeric_limits<uint16_t>::max() );
AddToDataStream( dataStream, std::numeric_limits<Metadata::node_id>::max() );
AddToDataStream( dataStream, reference->second );
return true;
}
Expand Down Expand Up @@ -245,14 +245,14 @@ bool GetFromDataStream( const std::vector<uint8_t>& dataStream, size_t& idx, T&

SmartNode<> DeserialiseSmartNodeInternal( const std::vector<uint8_t>& serialisedNodeData, size_t& serialIdx, std::vector<SmartNode<>>& referenceNodes, FastSIMD::FeatureSet level = FastSIMD::FeatureSet::Max )
{
uint16_t nodeId;
Metadata::node_id nodeId;
if( !GetFromDataStream( serialisedNodeData, serialIdx, nodeId ) )
{
return nullptr;
}

// UINT16_MAX indicates a reference node
if( nodeId == std::numeric_limits<uint16_t>::max() )
if( nodeId == std::numeric_limits<Metadata::node_id>::max() )
{
uint16_t referenceId;
if( !GetFromDataStream( serialisedNodeData, serialIdx, referenceId ) )
Expand Down Expand Up @@ -359,14 +359,14 @@ SmartNode<> FastNoise::NewFromEncodedNodeTree( const char* serialisedBase64NodeD

NodeData* DeserialiseNodeDataInternal( const std::vector<uint8_t>& serialisedNodeData, std::vector<std::unique_ptr<NodeData>>& nodeDataOut, size_t& serialIdx )
{
uint16_t nodeId;
Metadata::node_id nodeId;
if( !GetFromDataStream( serialisedNodeData, serialIdx, nodeId ) )
{
return nullptr;
}

// UINT16_MAX indicates a reference node
if( nodeId == std::numeric_limits<uint16_t>::max() )
if( nodeId == std::numeric_limits<Metadata::node_id>::max() )
{
uint16_t referenceId;
if( !GetFromDataStream( serialisedNodeData, serialIdx, referenceId ) )
Expand Down

0 comments on commit ccd1d10

Please sign in to comment.