mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-28 17:20:16 -04:00
correct use of pointer and fix mistake (#394)
* correct use of pointer and fix mistake * remove CM_WeirdLength * Update Game.cpp * Update Game.cpp --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
This commit is contained in:
+2
-2
@@ -1,7 +1,7 @@
|
||||
#include "Cup.h"
|
||||
#include "courses/Course.h"
|
||||
|
||||
Cup::Cup(std::string id, const char* name, std::vector<Course*> courses) {
|
||||
Cup::Cup(std::string id, const char* name, std::vector<std::shared_ptr<Course>> courses) {
|
||||
Id = id;
|
||||
Name = name;
|
||||
Courses = courses;
|
||||
@@ -30,7 +30,7 @@ void Cup::SetCourse(size_t position) {
|
||||
CursorPosition = position;
|
||||
}
|
||||
|
||||
Course* Cup::GetCourse() {
|
||||
std::shared_ptr<Course> Cup::GetCourse() {
|
||||
return Courses[CursorPosition];
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -13,15 +13,15 @@ public:
|
||||
const char* Name;
|
||||
u8 *Thumbnail;
|
||||
size_t CursorPosition = 0; // Course index in cup
|
||||
std::vector<Course*> Courses;
|
||||
std::vector<std::shared_ptr<Course>> Courses;
|
||||
|
||||
explicit Cup(std::string id, const char* name, std::vector<Course*> courses);
|
||||
explicit Cup(std::string id, const char* name, std::vector<std::shared_ptr<Course>> courses);
|
||||
|
||||
virtual void ShuffleCourses();
|
||||
|
||||
virtual void Next();
|
||||
virtual void Previous();
|
||||
virtual void SetCourse(size_t position);
|
||||
virtual Course* GetCourse();
|
||||
virtual std::shared_ptr<Course> GetCourse();
|
||||
virtual size_t GetSize();
|
||||
};
|
||||
@@ -18,7 +18,7 @@ void ModelLoader::Load() {
|
||||
_hasRan = true;
|
||||
|
||||
// Set to track processed courses
|
||||
std::unordered_set<Course*> processedCourses;
|
||||
std::unordered_set<std::shared_ptr<Course>> processedCourses;
|
||||
|
||||
for (auto& list : _deferredList) {
|
||||
// Check if the course has already been processed
|
||||
@@ -34,8 +34,8 @@ void ModelLoader::Load() {
|
||||
}
|
||||
}
|
||||
|
||||
void ModelLoader::Extract(Course* course) {
|
||||
Course* saveCourse = gWorldInstance.CurrentCourse;
|
||||
void ModelLoader::Extract(std::shared_ptr<Course> course) {
|
||||
std::shared_ptr<Course> saveCourse = gWorldInstance.CurrentCourse;
|
||||
gWorldInstance.CurrentCourse = course; // Quick hack so that `get_texture` will find the right textures.
|
||||
|
||||
size_t vtxSize = (ResourceGetSizeByName(course->vtx) / sizeof(CourseVtx)) * sizeof(Vtx);
|
||||
|
||||
@@ -37,7 +37,7 @@ class ModelLoader {
|
||||
|
||||
public:
|
||||
struct LoadModelList {
|
||||
Course* course;
|
||||
std::shared_ptr<Course> course;
|
||||
|
||||
Gfx* gfxBuffer; // buffer for output gfx
|
||||
size_t gfxBufferSize;
|
||||
@@ -55,7 +55,7 @@ private:
|
||||
|
||||
};
|
||||
|
||||
void Extract(Course* course);
|
||||
void Extract(std::shared_ptr<Course> course);
|
||||
void UpdateVtx(LoadModelList list);
|
||||
|
||||
std::vector<LoadModelList> _deferredList;
|
||||
|
||||
@@ -26,13 +26,12 @@ World::~World() {
|
||||
CM_CleanWorld();
|
||||
}
|
||||
|
||||
Course* CurrentCourse;
|
||||
std::shared_ptr<Course> CurrentCourse;
|
||||
Cup* CurrentCup;
|
||||
|
||||
Course* World::AddCourse(std::unique_ptr<Course> course) {
|
||||
Course* ptr = course.get();
|
||||
gWorldInstance.Courses.push_back(std::move(course));
|
||||
return ptr;
|
||||
std::shared_ptr<Course> World::AddCourse(std::shared_ptr<Course> course) {
|
||||
gWorldInstance.Courses.push_back(course);
|
||||
return course;
|
||||
}
|
||||
|
||||
void World::AddCup(Cup* cup) {
|
||||
@@ -99,7 +98,7 @@ void World::SetCourse(const char* name) {
|
||||
//! @todo Use content dictionary instead
|
||||
for (size_t i = 0; i < Courses.size(); i++) {
|
||||
if (strcmp(Courses[i]->Props.Name, name) == 0) {
|
||||
CurrentCourse = Courses[i].get();
|
||||
CurrentCourse = Courses[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -112,7 +111,7 @@ void World::NextCourse() {
|
||||
} else {
|
||||
CourseIndex = 0;
|
||||
}
|
||||
gWorldInstance.CurrentCourse = Courses[CourseIndex].get();
|
||||
gWorldInstance.CurrentCourse = Courses[CourseIndex];
|
||||
}
|
||||
|
||||
void World::PreviousCourse() {
|
||||
@@ -121,7 +120,7 @@ void World::PreviousCourse() {
|
||||
} else {
|
||||
CourseIndex = Courses.size() - 1;
|
||||
}
|
||||
gWorldInstance.CurrentCourse = Courses[CourseIndex].get();
|
||||
gWorldInstance.CurrentCourse = Courses[CourseIndex];
|
||||
}
|
||||
|
||||
AActor* World::AddActor(AActor* actor) {
|
||||
|
||||
+4
-4
@@ -54,7 +54,7 @@ public:
|
||||
explicit World();
|
||||
~World();
|
||||
|
||||
Course* AddCourse(std::unique_ptr<Course> course);
|
||||
std::shared_ptr<Course> AddCourse(std::shared_ptr<Course> course);
|
||||
|
||||
AActor* AddActor(AActor* actor);
|
||||
struct Actor* AddBaseActor();
|
||||
@@ -100,7 +100,7 @@ public:
|
||||
void SetCourseByType() {
|
||||
for (const auto& course : Courses) {
|
||||
if (dynamic_cast<T*>(course.get())) {
|
||||
CurrentCourse = course.get();
|
||||
CurrentCourse = course;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,7 @@ public:
|
||||
Matrix Mtx;
|
||||
|
||||
|
||||
Course* CurrentCourse;
|
||||
std::shared_ptr<Course> CurrentCourse;
|
||||
Cup* CurrentCup;
|
||||
|
||||
std::vector<Cup*> Cups;
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
std::vector<std::shared_ptr<TrainCrossing>> Crossings;
|
||||
|
||||
// Holds all available courses
|
||||
std::vector<std::unique_ptr<Course>> Courses;
|
||||
std::vector<std::shared_ptr<Course>> Courses;
|
||||
size_t CourseIndex = 0; // For browsing courses.
|
||||
private:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user