2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 09:47:43 +00:00

Various bug fixes

This commit is contained in:
Jack Andersen
2017-11-25 17:04:25 -10:00
parent 80f98e1218
commit 11d17d0fe5
34 changed files with 481 additions and 80 deletions

View File

@@ -16,7 +16,7 @@ struct IElement : BigYAML
virtual const char* ClassID() const=0;
};
struct IRealElement : IElement {Delete _d;};
struct IRealElement : IElement {Delete _d2;};
struct RealElementFactory : BigYAML
{
Delete _d;
@@ -30,7 +30,7 @@ struct RealElementFactory : BigYAML
void write(athena::io::IStreamWriter& w) const;
};
struct IIntElement : IElement {Delete _d;};
struct IIntElement : IElement {Delete _d2;};
struct IntElementFactory : BigYAML
{
Delete _d;
@@ -44,7 +44,7 @@ struct IntElementFactory : BigYAML
void write(athena::io::IStreamWriter& w) const;
};
struct IVectorElement : IElement {Delete _d;};
struct IVectorElement : IElement {Delete _d2;};
struct VectorElementFactory : BigYAML
{
Delete _d;
@@ -58,7 +58,7 @@ struct VectorElementFactory : BigYAML
void write(athena::io::IStreamWriter& w) const;
};
struct IColorElement : IElement {Delete _d;};
struct IColorElement : IElement {Delete _d2;};
struct ColorElementFactory : BigYAML
{
Delete _d;
@@ -72,7 +72,7 @@ struct ColorElementFactory : BigYAML
void write(athena::io::IStreamWriter& w) const;
};
struct IModVectorElement : IElement {Delete _d;};
struct IModVectorElement : IElement {Delete _d2;};
struct ModVectorElementFactory : BigYAML
{
Delete _d;
@@ -86,7 +86,7 @@ struct ModVectorElementFactory : BigYAML
void write(athena::io::IStreamWriter& w) const;
};
struct IEmitterElement : IElement {Delete _d;};
struct IEmitterElement : IElement {Delete _d2;};
struct EmitterElementFactory : BigYAML
{
Delete _d;
@@ -102,13 +102,13 @@ struct EmitterElementFactory : BigYAML
struct IUVElement : IElement
{
Delete _d;
Delete _d2;
virtual void gatherDependencies(std::vector<hecl::ProjectPath>& pathsOut) const=0;
};
struct BoolHelper : IElement
{
Delete _d;
Delete _d2;
bool value = false;
operator bool() const {return value;}
BoolHelper& operator=(bool val) {value = val; return *this;}
@@ -151,7 +151,7 @@ struct RELifetimeTween : IRealElement
struct REConstant : IRealElement
{
Delete _d;
Delete _d3;
Value<float> val;
void read(athena::io::YAMLDocReader& r)
@@ -464,7 +464,7 @@ struct IEAdd : IIntElement
struct IEConstant : IIntElement
{
Delete _d;
Delete _d3;
Value<atUint32> val;
void read(athena::io::YAMLDocReader& r)
@@ -625,7 +625,7 @@ struct VECircleCluster : IVectorElement
struct VEConstant : IVectorElement
{
Delete _d;
Delete _d3;
RealElementFactory comps[3];
void read(athena::io::YAMLDocReader& r)
@@ -772,7 +772,7 @@ struct CEKeyframeEmitter : IColorElement
struct CEConstant : IColorElement
{
Delete _d;
Delete _d3;
RealElementFactory comps[4];
void read(athena::io::YAMLDocReader& r)
@@ -895,7 +895,7 @@ struct MVEBounce : IModVectorElement
struct MVEConstant : IModVectorElement
{
Delete _d;
Delete _d3;
RealElementFactory comps[3];
void read(athena::io::YAMLDocReader& r)
@@ -1026,7 +1026,7 @@ struct VEAngleSphere : IEmitterElement
struct EESimpleEmitterTR : EESimpleEmitter
{
Delete _d;
Delete _d3;
void read(athena::io::YAMLDocReader& r)
{
@@ -1078,7 +1078,7 @@ struct EESimpleEmitterTR : EESimpleEmitter
template <class IDType>
struct UVEConstant : IUVElement
{
Delete _d;
Delete _d3;
IDType tex;
void read(athena::io::YAMLDocReader& r)
{
@@ -1119,7 +1119,7 @@ struct UVEConstant : IUVElement
template <class IDType>
struct UVEAnimTexture : IUVElement
{
Delete _d;
Delete _d3;
IDType tex;
IntElementFactory tileW;
IntElementFactory tileH;

View File

@@ -183,7 +183,7 @@ struct ANCS : BigYAML
};
struct MetaAnimPrimitive : IMetaAnim
{
Delete expl;
Delete expl2;
MetaAnimPrimitive() : IMetaAnim(Type::Primitive, "Primitive") {}

View File

@@ -64,7 +64,7 @@ struct EVNT : BigYAML
{
DECL_YAML
Value<atUint32> duration;
DNAFourCC type;
DNAFourCC ptype;
UniqueID32 id;
String<-1> locator;
Value<float> scale;

View File

@@ -56,13 +56,13 @@ struct FRME : BigDNA
struct BWIGInfo : IWidgetInfo
{
Delete _d;
Delete _d2;
FourCC fourcc() const { return FOURCC('BWIG'); }
};
struct HWIGInfo : IWidgetInfo
{
Delete _d;
Delete _d2;
FourCC fourcc() const { return FOURCC('HWIG'); }
};

View File

@@ -14,7 +14,7 @@ struct CameraBlurKeyframe : IScriptObject
DECL_YAML
String<-1> name;
Value<bool> active;
Value<atUint32> type;
Value<atUint32> btype;
Value<float> amount;
Value<atUint32> unk;
Value<float> timeIn;

View File

@@ -14,7 +14,7 @@ struct CameraFilterKeyframe : IScriptObject
DECL_YAML
String<-1> name;
Value<bool> active;
Value<atUint32> type;
Value<atUint32> ftype;
Value<atUint32> shape;
Value<atUint32> filterIdx;
Value<atUint32> unk;

View File

@@ -114,9 +114,9 @@ struct CHAR : BigYAML
Delete expl;
UniqueID64 caudId;
Value<atUint32> unk1;
Value<atUint32> unk2;
Value<atUint32> unk3;
Value<atUint32> unk1_;
Value<atUint32> unk2_;
Value<atUint32> unk3_;
std::vector<float> unk3Vals;
Value<atUint32> extraType;
Value<float> extraFloat;

View File

@@ -546,10 +546,9 @@ void SpecBase::doPackage(const hecl::ProjectPath& path, const hecl::Database::Da
hecl::ProjectPath outPath(m_project.getProjectWorkingPath(),
_S("out/") + components[0] + _S("/") + components[1] + _S(".upak"));
outPath.makeDirChain(false);
hecl::SystemString tmpPath = hecl::SystemString(outPath.getAbsolutePath()) + _S("~");
/* Output file */
athena::io::FileWriter pakOut(tmpPath);
athena::io::FileWriter pakOut(outPath.getAbsolutePath());
std::vector<urde::SObjectTag> buildList;
atUint64 resTableOffset = 0;
@@ -656,9 +655,6 @@ void SpecBase::doPackage(const hecl::ProjectPath& path, const hecl::Database::Da
/* Write file index */
writePakFileIndex(pakOut, buildList, fileIndex, resTableOffset);
pakOut.close();
/* Atomic rename */
hecl::Rename(tmpPath.c_str(), outPath.getAbsolutePath().data());
}
hecl::ProjectPath SpecBase::getCookedPath(const hecl::ProjectPath& working, bool pcTarget) const