Files
prime/include/Collision/CCollisionInfoList.hpp
Luke StreetandGitHub 2c46a69188 CMorphBall & link RMathUtils (#44)
* Update tool versions

* Initial CMorphBall

* Cleanup CMorphBall, link RMathUtils

* Rematch a couple symbols

* Fix _01 DolphinCGraphics .sdata size regression
2026-03-17 00:10:26 -06:00

44 lines
1.3 KiB
C++

#ifndef _CCOLLISIONINFOLIST
#define _CCOLLISIONINFOLIST
#include "Collision/CCollisionInfo.hpp"
#include "rstl/reserved_vector.hpp"
class CCollisionInfoList {
rstl::reserved_vector< CCollisionInfo, 32 > x0_list;
public:
typedef rstl::reserved_vector< CCollisionInfo, 32 >::iterator iterator;
typedef rstl::reserved_vector< CCollisionInfo, 32 >::const_iterator const_iterator;
void Add(const CCollisionInfo& info, bool swap) {
if (x0_list.size() == 32) {
return;
}
if (!swap) {
x0_list.push_back(info);
} else {
x0_list.push_back(info.GetSwapped(CCollisionInfo::kSM_Swap));
}
}
void Clear() { x0_list.clear(); }
int GetCount() const { return x0_list.size(); }
rstl::reserved_vector< CCollisionInfo, 32 >& GetList() { return x0_list; }
const rstl::reserved_vector< CCollisionInfo, 32 >& GetList() const { return x0_list; }
CCollisionInfo& operator[](int idx) { return x0_list[idx]; }
const CCollisionInfo& operator[](int idx) const { return x0_list[idx]; }
void Swap(const int idx) {
for (int i = idx; i < GetCount(); ++i) {
x0_list[i].Swap();
}
}
iterator End() { return x0_list.end(); }
const_iterator End() const { return x0_list.end(); }
iterator Begin() { return x0_list.begin(); }
const_iterator Begin() const { return x0_list.begin(); }
};
#endif // _CCOLLISIONINFOLIST