1#include "KartObjectManager.hh"
3#include "game/kart/KartCollide.hh"
4#include "game/kart/KartParamFileManager.hh"
5#include "game/system/RaceConfig.hh"
7#include <abstract/g3d/ResFile.hh>
12void KartObjectManager::init() {
13 for (
size_t i = 0; i < m_count; ++i) {
14 m_objects[i]->initImpl();
20void KartObjectManager::calc() {
21 for (
size_t i = 0; i < m_count; ++i) {
22 KartObject *
object = m_objects[i];
23 object->collide()->setTangentOff(EGG::Vector3f::zero);
24 object->collide()->setMovement(EGG::Vector3f::zero);
27 for (
size_t i = 0; i < m_count; ++i) {
28 KartObject *
object = m_objects[i];
35KartObjectManager *KartObjectManager::CreateInstance() {
37 s_instance =
new KartObjectManager;
42void KartObjectManager::DestroyInstance() {
44 auto *instance = s_instance;
50KartObjectManager::KartObjectManager() {
51 const auto &raceScenario = System::RaceConfig::Instance()->raceScenario();
52 m_count = raceScenario.playerCount;
53 m_objects =
new KartObject *[m_count];
54 KartParamFileManager::CreateInstance();
56 loadScaleAnimations();
58 for (
size_t i = 0; i < m_count; ++i) {
59 const auto &player = raceScenario.players[i];
60 KartObject *
object = KartObject::Create(player.character, player.vehicle, i);
61 object->createModel();
62 m_objects[i] = object;
67KartObjectManager::~KartObjectManager() {
70 WARN(
"KartObjectManager instance not explicitly handled!");
73 KartParamFileManager::DestroyInstance();
75 for (
size_t i = 0; i < m_count; ++i) {
81 delete s_pressScaleUpAnmChr;
86 KartObjectProxy::proxyList().clear();
90void KartObjectManager::loadScaleAnimations() {
91 auto *resMgr = System::ResourceManager::Instance();
92 const void *file = resMgr->getFile(
"driver.brres",
nullptr, System::ArchiveId::Core);
102KartObjectManager *KartObjectManager::s_instance =
nullptr;
Represents the CHR0 file format, which pertains to model movement animations.
Represents a binary resource file which contains object models, textures, and animations.
ResAnmChr resAnmChr(const char *pName) const
Retrieves the AnmChr section from the binary file.
void prepare()
Sets the initial position and rotation of the kart based off the current track.
Pertains to kart-related functionality.