Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
Niflib
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Grant Kim
Niflib
Commits
2c36c4e6
Commit
2c36c4e6
authored
19 years ago
by
Shon Ferguson
Browse files
Options
Downloads
Patches
Plain Diff
Fixed NiPSysEmitterCtlrData and added NiVectorExtraData and NiBinaryExtraData.
parent
9488f294
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
NIF_Blocks.cpp
+77
-0
77 additions, 0 deletions
NIF_Blocks.cpp
NIF_Blocks.h
+91
-21
91 additions, 21 deletions
NIF_Blocks.h
docsys_extract.cpp
+10
-0
10 additions, 0 deletions
docsys_extract.cpp
with
178 additions
and
21 deletions
NIF_Blocks.cpp
+
77
−
0
View file @
2c36c4e6
...
@@ -3337,6 +3337,83 @@ string AKeyframeData::asString() const {
...
@@ -3337,6 +3337,83 @@ string AKeyframeData::asString() const {
return out.str();
return out.str();
}
}
/***********************************************************
* NiPSysEmitterCtlrData methods
**********************************************************/
void NiPSysEmitterCtlrData::Read( istream& file, unsigned int version ) {
//--Float Keys--//
uint numKeys = ReadUInt( file );
if (numKeys > 0) {
NifStream( f_key_type, file );
float_keys.resize( numKeys );
for ( uint i = 0; i < float_keys.size(); ++i ) {
NifStream( float_keys[i], file, f_key_type );
}
}
//--Byte Keys--//
numKeys = ReadUInt( file );
byte_keys.resize( numKeys );
for ( uint i = 0; i < byte_keys.size(); ++i ) {
NifStream( byte_keys[i], file, LINEAR_KEY );
}
}
void NiPSysEmitterCtlrData::Write( ostream& file, unsigned int version ) const {
//--Float Keys--//
WriteUInt( uint(float_keys.size()), file );
if (float_keys.size() > 0) {
NifStream( f_key_type, file );
for ( uint i = 0; i < float_keys.size(); ++i ) {
NifStream( float_keys[i], file, f_key_type );
}
}
//--Byte Keys--//
WriteUInt( uint(byte_keys.size()), file );
for ( uint i = 0; i < byte_keys.size(); ++i ) {
NifStream( byte_keys[i], file, LINEAR_KEY );
}
}
string NiPSysEmitterCtlrData::asString() const {
stringstream out;
out.setf(ios::fixed, ios::floatfield);
out << setprecision(1);
out << "Float Key Count: " << uint(float_keys.size()) << endl
<< "Float Key Type: " << f_key_type << endl;
if (verbose) {
vector< Key<float> >::const_iterator it;
for ( it = float_keys.begin(); it != float_keys.end(); ++it ) {
out << "Key Time: " << it->time << " Float Value: " << it->data << endl;
}
} else {
out << "<<Data Not Shown>>" << endl;
}
out << "Byte Key Count: " << uint(byte_keys.size()) << endl;
if (verbose) {
vector< Key<byte> >::const_iterator it;
for ( it = byte_keys.begin(); it != byte_keys.end(); ++it ) {
out << "Key Time: " << it->time << " Float Value: " << it->data << endl;
}
} else {
out << "<<Data Not Shown>>" << endl;
}
return out.str();
}
/***********************************************************
/***********************************************************
* NiBoolData methods
* NiBoolData methods
**********************************************************/
**********************************************************/
...
...
This diff is collapsed.
Click to expand it.
NIF_Blocks.h
+
91
−
21
View file @
2c36c4e6
...
@@ -727,27 +727,6 @@ private:
...
@@ -727,27 +727,6 @@ private:
uint
unkInt2
;
uint
unkInt2
;
};
};
/**
* NiPSysEmitterCtlrData
*/
class
NiPSysEmitterCtlrData
:
public
AData
{
public:
NiPSysEmitterCtlrData
()
{
AddAttr
(
attr_int
,
"Unknown Int 1"
);
AddAttr
(
attr_int
,
"Unknown Int 2"
);
AddAttr
(
attr_int
,
"Unknown Int 3"
);
AddAttr
(
attr_float
,
"Unknown Float 1"
);
AddAttr
(
attr_int
,
"Unknown Int 4"
);
AddAttr
(
attr_int
,
"Unknown Int 5"
);
AddAttr
(
attr_byte
,
"Unknown Byte 1"
);
AddAttr
(
attr_float
,
"Unknown Float 2"
);
AddAttr
(
attr_byte
,
"Unknown Byte 2"
);
}
~
NiPSysEmitterCtlrData
()
{}
string
GetBlockType
()
const
{
return
"NiPSysEmitterCtlrData"
;
}
};
/**
/**
* NiMaterialProperty - material properties
* NiMaterialProperty - material properties
*/
*/
...
@@ -1750,6 +1729,24 @@ public:
...
@@ -1750,6 +1729,24 @@ public:
string
GetBlockType
()
const
{
return
"NiPSysSphereEmitter"
;
}
string
GetBlockType
()
const
{
return
"NiPSysSphereEmitter"
;
}
};
};
/**
* NiPSysEmitterCtlrData
*/
class
NiPSysEmitterCtlrData
:
public
AData
{
public:
NiPSysEmitterCtlrData
()
{}
~
NiPSysEmitterCtlrData
()
{}
string
GetBlockType
()
const
{
return
"NiPSysEmitterCtlrData"
;
}
void
Read
(
istream
&
in
,
unsigned
int
version
);
void
Write
(
ostream
&
out
,
unsigned
int
version
)
const
;
string
asString
()
const
;
private
:
KeyType
f_key_type
;
vector
<
Key
<
float
>
>
float_keys
;
vector
<
Key
<
byte
>
>
byte_keys
;
};
/**
/**
* AKeyframeData -
* AKeyframeData -
*/
*/
...
@@ -2281,6 +2278,79 @@ public:
...
@@ -2281,6 +2278,79 @@ public:
};
};
class
NiBinaryExtraData
:
public
AExtraData
{
public:
NiBinaryExtraData
()
{}
~
NiBinaryExtraData
()
{}
string
GetBlockType
()
const
{
return
"NiBinaryExtraData"
;
};
void
Read
(
istream
&
in
,
unsigned
int
version
)
{
AExtraData
::
Read
(
in
,
version
);
uint
numBytes
=
ReadUInt
(
in
);
binData
.
resize
(
numBytes
);
NifStream
(
binData
,
in
);
}
void
Write
(
ostream
&
out
,
unsigned
int
version
)
const
{
AExtraData
::
Write
(
out
,
version
);
WriteUInt
(
uint
(
binData
.
size
()),
out
);
NifStream
(
binData
,
out
);
}
string
asString
()
const
{
stringstream
out
;
out
.
setf
(
ios
::
fixed
,
ios
::
floatfield
);
out
<<
setprecision
(
1
);
out
<<
AExtraData
::
asString
()
<<
"Binary Data ("
<<
uint
(
binData
.
size
())
<<
" bytes):"
<<
endl
;
for
(
uint
i
=
0
;
i
<
binData
.
size
();
++
i
)
{
out
<<
" "
<<
i
<<
": "
<<
binData
[
i
]
<<
endl
;
}
return
out
.
str
();
}
private
:
vector
<
byte
>
binData
;
};
class
NiVectorExtraData
:
public
AExtraData
{
public:
NiVectorExtraData
()
{
AddAttr
(
attr_vector3
,
"Vector Data"
);
AddAttr
(
attr_float
,
"Unknown Float"
);
}
~
NiVectorExtraData
()
{}
string
GetBlockType
()
const
{
return
"NiVectorExtraData"
;
};
void
Read
(
istream
&
in
,
unsigned
int
version
)
{
AExtraData
::
Read
(
in
,
version
);
GetAttr
(
"Vector Data"
)
->
Read
(
in
,
version
);
GetAttr
(
"Unknown Float"
)
->
Read
(
in
,
version
);
}
void
Write
(
ostream
&
out
,
unsigned
int
version
)
const
{
GetAttr
(
"Vector Data"
)
->
Write
(
out
,
version
);
GetAttr
(
"Unknown Float"
)
->
Write
(
out
,
version
);
}
string
asString
()
const
{
stringstream
out
;
out
.
setf
(
ios
::
fixed
,
ios
::
floatfield
);
out
<<
setprecision
(
1
);
out
<<
AExtraData
::
asString
()
<<
"Vector Data: "
<<
GetAttr
(
"Vector Data"
)
->
asString
()
<<
endl
<<
"Unknown Float: "
<<
GetAttr
(
"Unknown Float"
)
->
asString
()
<<
endl
;
return
out
.
str
();
}
};
class
NiColorExtraData
:
public
AExtraData
{
class
NiColorExtraData
:
public
AExtraData
{
public:
public:
NiColorExtraData
()
{}
NiColorExtraData
()
{}
...
...
This diff is collapsed.
Click to expand it.
docsys_extract.cpp
+
10
−
0
View file @
2c36c4e6
...
@@ -863,6 +863,10 @@ IBlock * CreateNiBillboardNode() {
...
@@ -863,6 +863,10 @@ IBlock * CreateNiBillboardNode() {
return
new
NiBillboardNode
;
return
new
NiBillboardNode
;
}
}
IBlock
*
CreateNiBinaryExtraData
()
{
return
new
NiBinaryExtraData
;
}
IBlock
*
CreateNiBoneLODController
()
{
IBlock
*
CreateNiBoneLODController
()
{
return
new
NiBoneLODController
;
return
new
NiBoneLODController
;
}
}
...
@@ -1315,6 +1319,10 @@ IBlock * CreateNiUVData() {
...
@@ -1315,6 +1319,10 @@ IBlock * CreateNiUVData() {
return
new
NiUVData
;
return
new
NiUVData
;
}
}
IBlock
*
CreateNiVectorExtraData
()
{
return
new
NiVectorExtraData
;
}
IBlock
*
CreateNiVertexColorProperty
()
{
IBlock
*
CreateNiVertexColorProperty
()
{
return
new
NiVertexColorProperty
;
return
new
NiVertexColorProperty
;
}
}
...
@@ -1355,6 +1363,7 @@ void RegisterBlockFactories () {
...
@@ -1355,6 +1363,7 @@ void RegisterBlockFactories () {
global_block_map
[
"NiAutoNormalParticles"
]
=
CreateNiAutoNormalParticles
;
global_block_map
[
"NiAutoNormalParticles"
]
=
CreateNiAutoNormalParticles
;
global_block_map
[
"NiAutoNormalParticlesData"
]
=
CreateNiAutoNormalParticlesData
;
global_block_map
[
"NiAutoNormalParticlesData"
]
=
CreateNiAutoNormalParticlesData
;
global_block_map
[
"NiBillboardNode"
]
=
CreateNiBillboardNode
;
global_block_map
[
"NiBillboardNode"
]
=
CreateNiBillboardNode
;
global_block_map
[
"NiBinaryExtraData"
]
=
CreateNiBinaryExtraData
;
global_block_map
[
"NiBoneLODController"
]
=
CreateNiBoneLODController
;
global_block_map
[
"NiBoneLODController"
]
=
CreateNiBoneLODController
;
global_block_map
[
"NiBoolData"
]
=
CreateNiBoolData
;
global_block_map
[
"NiBoolData"
]
=
CreateNiBoolData
;
global_block_map
[
"NiBooleanExtraData"
]
=
CreateNiBooleanExtraData
;
global_block_map
[
"NiBooleanExtraData"
]
=
CreateNiBooleanExtraData
;
...
@@ -1468,6 +1477,7 @@ void RegisterBlockFactories () {
...
@@ -1468,6 +1477,7 @@ void RegisterBlockFactories () {
global_block_map
[
"NiTriStripsData"
]
=
CreateNiTriStripsData
;
global_block_map
[
"NiTriStripsData"
]
=
CreateNiTriStripsData
;
global_block_map
[
"NiUVController"
]
=
CreateNiUVController
;
global_block_map
[
"NiUVController"
]
=
CreateNiUVController
;
global_block_map
[
"NiUVData"
]
=
CreateNiUVData
;
global_block_map
[
"NiUVData"
]
=
CreateNiUVData
;
global_block_map
[
"NiVectorExtraData"
]
=
CreateNiVectorExtraData
;
global_block_map
[
"NiVertexColorProperty"
]
=
CreateNiVertexColorProperty
;
global_block_map
[
"NiVertexColorProperty"
]
=
CreateNiVertexColorProperty
;
global_block_map
[
"NiVertWeightsExtraData"
]
=
CreateNiVertWeightsExtraData
;
global_block_map
[
"NiVertWeightsExtraData"
]
=
CreateNiVertWeightsExtraData
;
global_block_map
[
"NiVisController"
]
=
CreateNiVisController
;
global_block_map
[
"NiVisController"
]
=
CreateNiVisController
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment