From e44727f620c18a77ccb5326dec38bd6d17e9178a Mon Sep 17 00:00:00 2001 From: Amorilia <amorilia@users.sourceforge.net> Date: Sat, 10 Dec 2011 21:44:25 +0000 Subject: [PATCH] Fix for having ByteColor4 inside a Key. --- include/NIF_IO.h | 6 ++++++ include/obj/NiPSSimulatorGeneralStep.h | 2 ++ src/NIF_IO.cpp | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/include/NIF_IO.h b/include/NIF_IO.h index 70b58b92..ed1456cf 100644 --- a/include/NIF_IO.h +++ b/include/NIF_IO.h @@ -214,6 +214,12 @@ ostream & operator<<( ostream & out, Char8String const & val ); void NifStream( InertiaMatrix & val, istream& in, const NifInfo & info); void NifStream( InertiaMatrix const & val, ostream& out, const NifInfo & info); +//ByteColor4 +class ByteColor4; +void NifStream( ByteColor4 & val, istream& in, const NifInfo & info); +void NifStream( ByteColor4 const & val, ostream& out, const NifInfo & info); +ostream & operator<<( ostream & out, ByteColor4 const & val ); + //--Templates--// void NifStream( Key<Quaternion> & key, istream& file, const NifInfo & info, KeyType type ); diff --git a/include/obj/NiPSSimulatorGeneralStep.h b/include/obj/NiPSSimulatorGeneralStep.h index dd069e48..e6a5cc60 100644 --- a/include/obj/NiPSSimulatorGeneralStep.h +++ b/include/obj/NiPSSimulatorGeneralStep.h @@ -12,6 +12,8 @@ All rights reserved. Please see niflib.h for license. */ //--BEGIN FILE HEAD CUSTOM CODE--// +#include "../gen/ByteColor4.h" + //--END CUSTOM CODE--// #include "NiPSSimulatorStep.h" diff --git a/src/NIF_IO.cpp b/src/NIF_IO.cpp index f39cb744..c815c995 100644 --- a/src/NIF_IO.cpp +++ b/src/NIF_IO.cpp @@ -4,6 +4,7 @@ All rights reserved. Please see niflib.h for license. */ #include "../include/NIF_IO.h" #include "../include/niflib.h" #include "../include/gen/Header.h" +#include "../include/gen/ByteColor4.h" namespace Niflib { //--Endian Support Functions--// @@ -890,6 +891,26 @@ void NifStream( InertiaMatrix const & val, ostream& out, const NifInfo & info ) } } +//ByteColor4 +void NifStream( ByteColor4 & val, istream& in, const NifInfo & info ) { + val.r = ReadByte(in); + val.g = ReadByte(in); + val.b = ReadByte(in); + val.a = ReadByte(in); +} + +void NifStream( ByteColor4 const & val, ostream& out, const NifInfo & info ) { + WriteByte( val.r, out); + WriteByte( val.g, out); + WriteByte( val.b, out); + WriteByte( val.a, out); +} + +ostream & operator<<( ostream & out, ByteColor4 const & val ) { + out << "RGBA: " << val.r << " " << val.g << " " << val.b << " " << val.a; + return out; +} + ostream & operator<<( ostream & out, hdrInfo const & val ) { out.pword(hdrInfo::infoIdx) = (void*)val.info; return (out); -- GitLab