mirror of
https://github.com/PrimeDecomp/prime.git
synced 2026-07-12 18:18:56 -07:00
* Update tool versions * Initial CMorphBall * Cleanup CMorphBall, link RMathUtils * Rematch a couple symbols * Fix _01 DolphinCGraphics .sdata size regression
44 lines
1.3 KiB
C++
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
|