Add Mtx, float, and mk64 Factories (#43)

* Create MtxFactory.cpp

* Add mtx factory

* Implement mtx output

* Changed implementation

* Update comment

* Finish Mtx factory

* Add float factory

* Add runtime error for untested code

* Add DrivingBehaviour factory & fix bug

* Remove limit

* Add mk64 graphics

* Changes

* fix

* Update

* Improve error checking
This commit is contained in:
MegaMech
2024-03-23 01:57:53 -06:00
committed by GitHub
parent 5c6fa9c1f6
commit cd7dd6f59a
10 changed files with 545 additions and 7 deletions
+6
View File
@@ -13,6 +13,8 @@
#include "factories/SampleFactory.h"
#include "factories/SequenceFactory.h"
#include "factories/VtxFactory.h"
#include "factories/MtxFactory.h"
#include "factories/FloatFactory.h"
#include "factories/TextureFactory.h"
#include "factories/DisplayListFactory.h"
#include "factories/DisplayListOverrides.h"
@@ -23,6 +25,7 @@
#include "factories/mk64/Waypoints.h"
#include "factories/mk64/TrackSections.h"
#include "factories/mk64/SpawnData.h"
#include "factories/mk64/DrivingBehaviour.h"
#include "spdlog/spdlog.h"
#include "hj/sha1.h"
@@ -59,6 +62,8 @@ void Companion::Init(const ExportType type) {
this->RegisterFactory("BLOB", std::make_shared<BlobFactory>());
this->RegisterFactory("TEXTURE", std::make_shared<TextureFactory>());
this->RegisterFactory("VTX", std::make_shared<VtxFactory>());
this->RegisterFactory("MTX", std::make_shared<MtxFactory>());
this->RegisterFactory("F32", std::make_shared<FloatFactory>());
this->RegisterFactory("LIGHTS", std::make_shared<LightsFactory>());
this->RegisterFactory("GFX", std::make_shared<DListFactory>());
this->RegisterFactory("AUDIO:HEADER", std::make_shared<AudioHeaderFactory>());
@@ -79,6 +84,7 @@ void Companion::Init(const ExportType type) {
this->RegisterFactory("MK64:TRACK_WAYPOINTS", std::make_shared<MK64::WaypointsFactory>());
this->RegisterFactory("MK64:TRACK_SECTIONS", std::make_shared<MK64::TrackSectionsFactory>());
this->RegisterFactory("MK64:SPAWN_DATA", std::make_shared<MK64::SpawnDataFactory>());
this->RegisterFactory("MK64:DRIVING_BEHAVIOUR", std::make_shared<MK64::DrivingBehaviourFactory>());
// SF64 specific
this->RegisterFactory("SF64:ANIM", std::make_shared<SF64::AnimFactory>());