Beta addrs for ViewLODList (#898)

* Beta addrs for ViewLODList

* unsigned char
This commit is contained in:
MS
2024-05-09 22:16:12 -04:00
committed by GitHub
parent 172db7b5d8
commit 79791be574
3 changed files with 141 additions and 24 deletions

View File

@@ -23,6 +23,7 @@ class ViewLODListManager;
//
// VTABLE: LEGO1 0x100dbdc4
// VTABLE: BETA10 0x101c34f0
// SIZE 0x18
class ViewLODList : public LODList<ViewLOD> {
friend ViewLODListManager;
@@ -32,6 +33,7 @@ protected:
~ViewLODList() override;
// SYNTHETIC: LEGO1 0x100a80f0
// SYNTHETIC: BETA10 0x1017b590
// ViewLODList::`scalar deleting destructor'
public:
@@ -53,6 +55,7 @@ private:
// ??? for now, until we have symbol management
typedef const char* ROIName;
struct ROINameComparator {
// FUNCTION: BETA10 0x101794c0
unsigned char operator()(const ROIName& rName1, const ROIName& rName2) const
{
return strcmp((const char*) rName1, (const char*) rName2) > 0;
@@ -68,6 +71,7 @@ struct ROINameComparator {
// the ViewLODList belongs.
// VTABLE: LEGO1 0x100dbdbc
// VTABLE: BETA10 0x101c34ec
// SIZE 0x14
class ViewLODListManager {
@@ -88,29 +92,31 @@ public:
// returned LODList's refCount is increased, i.e. caller must call Release()
// when it no longer holds on to the list
ViewLODList* Lookup(const ROIName&) const;
void Destroy(ViewLODList* lodList);
unsigned char Destroy(ViewLODList* lodList);
#ifdef _DEBUG
void Dump(void (*pTracer)(const char*, ...)) const;
#endif
// SYNTHETIC: LEGO1 0x100a70c0
// SYNTHETIC: BETA10 0x10178a80
// ViewLODListManager::`scalar deleting destructor'
private:
static int g_ROINameUID;
ViewLODListMap m_map;
};
// clang-format off
// FUNCTION: LEGO1 0x1001dde0
// FUNCTION: BETA10 0x100223c0
// _Lockit::~_Lockit
// TEMPLATE: LEGO1 0x100a70e0
// TEMPLATE: BETA10 0x10178ac0
// Map<char const *,ViewLODList *,ROINameComparator>::~Map<char const *,ViewLODList *,ROINameComparator>
// TEMPLATE: LEGO1 0x100a77e0
// LODListBase::~LODListBase
// TEMPLATE: LEGO1 0x100a7800
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::iterator::_Dec
@@ -121,28 +127,76 @@ private:
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::~_Tree<char const *,pair<char const * const,ViewLODList *>,map<char c
// TEMPLATE: LEGO1 0x100a7960
// TEMPLATE: BETA10 0x1017ab40
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::erase
// TEMPLATE: LEGO1 0x100a7db0
// TEMPLATE: BETA10 0x1017aca0
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Erase
// TEMPLATE: LEGO1 0x100a7df0
// TEMPLATE: BETA10 0x101796b0
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Insert
// TEMPLATE: LEGO1 0x100a80a0
// TEMPLATE: BETA10 0x1017b1e0
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::~map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >
// TEMPLATE: LEGO1 0x100a8160
// LODList<ViewLOD>::~LODList<ViewLOD>
// GLOBAL: LEGO1 0x10101068
// GLOBAL: BETA10 0x10205eb4
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil
// TEMPLATE: BETA10 0x101791f0
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::operator[]
// TEMPLATE: BETA10 0x10178c80
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::iterator::operator==
// TEMPLATE: BETA10 0x10178ef0
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::begin
// TEMPLATE: BETA10 0x10179070
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::end
// TEMPLATE: BETA10 0x10179250
// pair<char const * const,ViewLODList *>::pair<char const * const,ViewLODList *>
// TEMPLATE: BETA10 0x10179280
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::insert
// TEMPLATE: BETA10 0x101792c0
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::insert
// TEMPLATE: BETA10 0x10178c00
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::iterator::operator*
// TEMPLATE: BETA10 0x1017ab10
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::erase
// Two iterators
// TEMPLATE: BETA10 0x1017a040
// map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::erase
// One iterator
// TEMPLATE: BETA10 0x10178f80
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Lmost
// TEMPLATE: BETA10 0x10179e70
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Rmost
// TEMPLATE: BETA10 0x10179670
// _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Color
// TEMPLATE: BETA10 0x1017aa30
// ?swap@@YAXAAW4_Redbl@?$_Tree@PBDU?$pair@QBDPAVViewLODList@@@@U_Kfn@?$map@PBDPAVViewLODList@@UROINameComparator@@V?$allocator@PAVViewLODList@@@@@@UROINameComparator@@V?$allocator@PAVViewLODList@@@@@@0@Z
// clang-format on
//////////////////////////////////////////////////////////////////////////////
//
// ViewLODList implementation
// FUNCTION: BETA10 0x1017b240
inline ViewLODList::ViewLODList(size_t capacity, ViewLODListManager* owner) : LODList<ViewLOD>(capacity), m_refCount(0)
{
m_owner = owner;
@@ -153,25 +207,22 @@ inline ViewLODList::~ViewLODList()
assert(m_refCount == 0);
}
// FUNCTION: BETA10 0x1007b5b0
inline int ViewLODList::AddRef()
{
return ++m_refCount;
}
// FUNCTION: BETA10 0x1007ad70
inline int ViewLODList::Release()
{
assert(m_refCount > 0);
if (!--m_refCount) {
m_owner->Destroy(this);
return 0;
}
return m_refCount;
}
#ifdef _DEBUG
inline void ViewLODList::Dump(void (*pTracer)(const char*, ...)) const
{
// FIXME: dump something
}
#endif
#endif // VIEWLODLIST_H