openddl-parser: V0.2.0

Signed-off-by: Kim Kulling <kim.kulling@googlemail.com>
This commit is contained in:
Kim Kulling
2015-05-05 22:26:40 +02:00
parent 5357772cf5
commit 2c60da38f3
6 changed files with 23 additions and 35 deletions

View File

@@ -101,12 +101,11 @@ uint8 Value::getUnsignedInt8() const {
void Value::setUnsignedInt16( uint16 value ) {
assert( ddl_unsigned_int16 == m_type );
::memcpy( m_data, &value, m_size );
}
uint16 Value::getUnsignedInt16() const {
assert( ddl_unsigned_int16 == m_type );
return ( uint8 ) ( *m_data );
}
void Value::setUnsignedInt32( uint32 value ) {
@@ -135,9 +134,15 @@ void Value::setFloat( float value ) {
}
float Value::getFloat() const {
float v;
::memcpy( &v, m_data, m_size );
return v;
if( m_type == ddl_float ) {
float v;
::memcpy( &v, m_data, m_size );
return ( float ) v;
} else {
float tmp;
::memcpy( &tmp, m_data, 4 );
return ( float ) tmp;
}
}
void Value::setDouble( double value ) {
@@ -241,7 +246,7 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) {
data->m_size = sizeof( int );
break;
case Value::ddl_int64:
data->m_size = sizeof( long );
data->m_size = sizeof( int64 );
break;
case Value::ddl_unsigned_int8:
data->m_size = sizeof( unsigned char );
@@ -250,7 +255,7 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) {
data->m_size = sizeof( unsigned int );
break;
case Value::ddl_unsigned_int64:
data->m_size = sizeof( unsigned long );
data->m_size = sizeof( uint64 );
break;
case Value::ddl_half:
data->m_size = sizeof( short );