mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-24 08:38:29 -05:00
Implement LegoJetskiRaceActor::VTable0x6c
, add BETA10 annotations (#1160)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
parent
6431405e92
commit
5be9b343c4
5 changed files with 68 additions and 2 deletions
|
@ -90,6 +90,8 @@ class LegoEntity : public MxEntity {
|
||||||
LegoROI* GetROI() { return m_roi; }
|
LegoROI* GetROI() { return m_roi; }
|
||||||
|
|
||||||
MxU8 GetType() { return m_type; }
|
MxU8 GetType() { return m_type; }
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1007ff00
|
||||||
MxBool GetCameraFlag() { return m_cameraFlag; }
|
MxBool GetCameraFlag() { return m_cameraFlag; }
|
||||||
|
|
||||||
void SetFlags(MxU8 p_flags) { m_flags = p_flags; }
|
void SetFlags(MxU8 p_flags) { m_flags = p_flags; }
|
||||||
|
|
|
@ -81,6 +81,7 @@ class LegoPathBoundary : public LegoWEGEdge {
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::erase
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::erase
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x1002c440
|
// TEMPLATE: LEGO1 0x1002c440
|
||||||
|
// TEMPLATE: BETA10 0x100b6480
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::find
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::find
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x1002c4c0
|
// TEMPLATE: LEGO1 0x1002c4c0
|
||||||
|
@ -93,6 +94,7 @@ class LegoPathBoundary : public LegoWEGEdge {
|
||||||
// set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::~set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >
|
// set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::~set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x1002c6c0
|
// TEMPLATE: LEGO1 0x1002c6c0
|
||||||
|
// TEMPLATE: BETA10 0x10020760
|
||||||
// Set<LegoPathActor *,LegoPathActorSetCompare>::~Set<LegoPathActor *,LegoPathActorSetCompare>
|
// Set<LegoPathActor *,LegoPathActorSetCompare>::~Set<LegoPathActor *,LegoPathActorSetCompare>
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x1002eb10
|
// TEMPLATE: LEGO1 0x1002eb10
|
||||||
|
@ -101,6 +103,9 @@ class LegoPathBoundary : public LegoWEGEdge {
|
||||||
// TEMPLATE: LEGO1 0x1002ebc0
|
// TEMPLATE: LEGO1 0x1002ebc0
|
||||||
// _Tree<LegoAnimPresenter *,LegoAnimPresenter *,set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Kfn,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Min
|
// _Tree<LegoAnimPresenter *,LegoAnimPresenter *,set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Kfn,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Min
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x100822a0
|
||||||
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Min
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x10045d80
|
// TEMPLATE: LEGO1 0x10045d80
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::iterator::_Dec
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::iterator::_Dec
|
||||||
|
|
||||||
|
@ -137,6 +142,9 @@ class LegoPathBoundary : public LegoWEGEdge {
|
||||||
// TEMPLATE: LEGO1 0x10057210
|
// TEMPLATE: LEGO1 0x10057210
|
||||||
// Set<LegoAnimPresenter *,LegoAnimPresenterSetCompare>::~Set<LegoAnimPresenter *,LegoAnimPresenterSetCompare>
|
// Set<LegoAnimPresenter *,LegoAnimPresenterSetCompare>::~Set<LegoAnimPresenter *,LegoAnimPresenterSetCompare>
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10082de0
|
||||||
|
// set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::begin
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x100573e0
|
// TEMPLATE: LEGO1 0x100573e0
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::begin
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::begin
|
||||||
|
|
||||||
|
@ -176,6 +184,27 @@ class LegoPathBoundary : public LegoWEGEdge {
|
||||||
// TEMPLATE: LEGO1 0x10081cd0
|
// TEMPLATE: LEGO1 0x10081cd0
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::lower_bound
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::lower_bound
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10082b90
|
||||||
|
// _Tree<LegoAnimPresenter *,LegoAnimPresenter *,set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Kfn,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::const_iterator::operator++
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10082ee0
|
||||||
|
// set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::end
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10082b40
|
||||||
|
// _Tree<LegoAnimPresenter *,LegoAnimPresenter *,set<LegoAnimPresenter *,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::_Kfn,LegoAnimPresenterSetCompare,allocator<LegoAnimPresenter *> >::const_iterator::operator*
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10021dc0
|
||||||
|
// Set<LegoPathActor *,LegoPathActorSetCompare>::Set<LegoPathActor *,LegoPathActorSetCompare>
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x100202d0
|
||||||
|
// set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::begin
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10020030
|
||||||
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::const_iterator::operator++
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x100203d0
|
||||||
|
// set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::end
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f11a4
|
// GLOBAL: LEGO1 0x100f11a4
|
||||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Nil
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Nil
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ class LegoRaceCar : public LegoCarRaceActor, public LegoRaceMap {
|
||||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100142a0
|
// FUNCTION: LEGO1 0x100142a0
|
||||||
|
// FUNCTION: BETA10 0x100cd500
|
||||||
const char* ClassName() const override // vtable+0x0c
|
const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// STRING: LEGO1 0x100f0548
|
// STRING: LEGO1 0x100f0548
|
||||||
|
|
|
@ -138,7 +138,7 @@ void LegoJetskiRaceActor::VTable0x70(float p_float)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10081fd0
|
// FUNCTION: LEGO1 0x10081fd0
|
||||||
MxU32 LegoJetskiRaceActor::VTable0x6c(
|
MxU32 LegoJetskiRaceActor::VTable0x6c(
|
||||||
LegoPathBoundary* p_boundary,
|
LegoPathBoundary* p_boundary,
|
||||||
Vector3& p_v1,
|
Vector3& p_v1,
|
||||||
|
@ -148,6 +148,39 @@ MxU32 LegoJetskiRaceActor::VTable0x6c(
|
||||||
Vector3& p_v3
|
Vector3& p_v3
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// TODO
|
LegoAnimPresenterSet& presenters = p_boundary->GetPresenters();
|
||||||
|
|
||||||
|
for (LegoAnimPresenterSet::iterator itap = presenters.begin(); itap != presenters.end(); itap++) {
|
||||||
|
if ((*itap)->VTable0x94(p_v1, p_v2, p_f1, p_f2, p_v3)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LegoPathActorSet& plpas = p_boundary->GetActors();
|
||||||
|
LegoPathActorSet lpas(plpas);
|
||||||
|
|
||||||
|
for (LegoPathActorSet::iterator itpa = lpas.begin(); itpa != lpas.end(); itpa++) {
|
||||||
|
if (plpas.find(*itpa) != plpas.end()) {
|
||||||
|
LegoPathActor* actor = *itpa;
|
||||||
|
|
||||||
|
if (this != actor) {
|
||||||
|
LegoROI* roi = actor->GetROI();
|
||||||
|
|
||||||
|
if (roi != NULL && (roi->GetVisibility() || actor->GetCameraFlag())) {
|
||||||
|
if (roi->FUN_100a9410(p_v1, p_v2, p_f1, p_f2, p_v3, m_collideBox && actor->GetCollideBox())) {
|
||||||
|
VTable0x94(actor, TRUE);
|
||||||
|
|
||||||
|
if (actor->VTable0x94(this, FALSE) < 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ class ROI {
|
||||||
// FUNCTION: BETA10 0x10027110
|
// FUNCTION: BETA10 0x10027110
|
||||||
const CompoundObject* GetComp() const { return comp; }
|
const CompoundObject* GetComp() const { return comp; }
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10049e10
|
||||||
unsigned char GetVisibility() { return m_visible; }
|
unsigned char GetVisibility() { return m_visible; }
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10011720
|
// FUNCTION: BETA10 0x10011720
|
||||||
|
|
Loading…
Reference in a new issue