start on some collider classes

This commit is contained in:
shibbo 2021-12-21 04:02:22 -05:00
parent b93c3397d4
commit 8a54230fb9
9 changed files with 155 additions and 19 deletions

View File

@ -96,10 +96,10 @@ __mi__Q29JGeometry8TVec2<f>CFRCQ29JGeometry8TVec2<f>,Butterfly.o,Map.a,false
converge<f>__2MRFfff_f,Butterfly.o,Map.a,false
__ct__26CollisionCategorizedKeeperFl,CollisionCategorizedKeeper.o,Map.a,false
movement__26CollisionCategorizedKeeperFv,CollisionCategorizedKeeper.o,Map.a,false
addToZone__26CollisionCategorizedKeeperFP14CollisionPartsl,CollisionCategorizedKeeper.o,Map.a,false
removeFromZone__26CollisionCategorizedKeeperFP14CollisionPartsl,CollisionCategorizedKeeper.o,Map.a,false
addToGlobal__26CollisionCategorizedKeeperFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,false
removeFromGlobal__26CollisionCategorizedKeeperFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,false
addToZone__26CollisionCategorizedKeeperFP14CollisionPartsl,CollisionCategorizedKeeper.o,Map.a,true
removeFromZone__26CollisionCategorizedKeeperFP14CollisionPartsl,CollisionCategorizedKeeper.o,Map.a,true
addToGlobal__26CollisionCategorizedKeeperFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,true
removeFromGlobal__26CollisionCategorizedKeeperFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,true
checkStrikePoint__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>P7HitInfo,CollisionCategorizedKeeper.o,Map.a,false
checkStrikeBall__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>fbPC24CollisionPartsFilterBasePC18TriangleFilterBase,CollisionCategorizedKeeper.o,Map.a,false
checkStrikeBallWithThickness__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>ffPC24CollisionPartsFilterBasePC18TriangleFilterBase,CollisionCategorizedKeeper.o,Map.a,false
@ -110,8 +110,8 @@ isSphereOverlappingWithBox__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>
searchSameHostParts__26CollisionCategorizedKeeperCFPP14CollisionPartsP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,false
getStrikeInfo__26CollisionCategorizedKeeperFUl,CollisionCategorizedKeeper.o,Map.a,false
getZone__26CollisionCategorizedKeeperFi,CollisionCategorizedKeeper.o,Map.a,false
__ct__13CollisionZoneFl,CollisionCategorizedKeeper.o,Map.a,false
addParts__13CollisionZoneFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,false
__ct__13CollisionZoneFl,CollisionCategorizedKeeper.o,Map.a,true
addParts__13CollisionZoneFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,true
calcMinMaxAndRadius__13CollisionZoneFv,CollisionCategorizedKeeper.o,Map.a,false
calcMinMaxAndRadiusIfMoveOuter__13CollisionZoneFP14CollisionParts,CollisionCategorizedKeeper.o,Map.a,false
addAndUpdateMinMax__13CollisionZoneFQ29JGeometry8TVec3<f>Q29JGeometry8TVec3<f>,CollisionCategorizedKeeper.o,Map.a,false

1 Symbol Name Object File Library Archive Matching
96 converge<f>__2MRFfff_f Butterfly.o Map.a false
97 __ct__26CollisionCategorizedKeeperFl CollisionCategorizedKeeper.o Map.a false
98 movement__26CollisionCategorizedKeeperFv CollisionCategorizedKeeper.o Map.a false
99 addToZone__26CollisionCategorizedKeeperFP14CollisionPartsl CollisionCategorizedKeeper.o Map.a false true
100 removeFromZone__26CollisionCategorizedKeeperFP14CollisionPartsl CollisionCategorizedKeeper.o Map.a false true
101 addToGlobal__26CollisionCategorizedKeeperFP14CollisionParts CollisionCategorizedKeeper.o Map.a false true
102 removeFromGlobal__26CollisionCategorizedKeeperFP14CollisionParts CollisionCategorizedKeeper.o Map.a false true
103 checkStrikePoint__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>P7HitInfo CollisionCategorizedKeeper.o Map.a false
104 checkStrikeBall__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>fbPC24CollisionPartsFilterBasePC18TriangleFilterBase CollisionCategorizedKeeper.o Map.a false
105 checkStrikeBallWithThickness__26CollisionCategorizedKeeperFRCQ29JGeometry8TVec3<f>ffPC24CollisionPartsFilterBasePC18TriangleFilterBase CollisionCategorizedKeeper.o Map.a false
110 searchSameHostParts__26CollisionCategorizedKeeperCFPP14CollisionPartsP14CollisionParts CollisionCategorizedKeeper.o Map.a false
111 getStrikeInfo__26CollisionCategorizedKeeperFUl CollisionCategorizedKeeper.o Map.a false
112 getZone__26CollisionCategorizedKeeperFi CollisionCategorizedKeeper.o Map.a false
113 __ct__13CollisionZoneFl CollisionCategorizedKeeper.o Map.a false true
114 addParts__13CollisionZoneFP14CollisionParts CollisionCategorizedKeeper.o Map.a false true
115 calcMinMaxAndRadius__13CollisionZoneFv CollisionCategorizedKeeper.o Map.a false
116 calcMinMaxAndRadiusIfMoveOuter__13CollisionZoneFP14CollisionParts CollisionCategorizedKeeper.o Map.a false
117 addAndUpdateMinMax__13CollisionZoneFQ29JGeometry8TVec3<f>Q29JGeometry8TVec3<f> CollisionCategorizedKeeper.o Map.a false

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "decompiled",
"message": "2.1786826%",
"message": "2.1890373%",
"color": "blue"
}

View File

@ -1,7 +1,7 @@
# Library Progress Chart
Progress (Full Game): 1.7214646% [91664 / 5324768]
Progress (Full Game): 1.7294275% [92088 / 5324768]
Progress (Only Game): 2.1786826% [89212 / 4094768]
Progress (Only Game): 2.1890373% [89636 / 4094768]
You have 2 / 120 stars.
@ -20,7 +20,7 @@ You have 2 / 120 stars.
| GameAudio.a | 0% |
| Gravity.a | 0% |
| LiveActor.a | 14.216034% |
| Map.a | 4.1980643% |
| Map.a | 4.3972564% |
| MapObj.a | 0% |
| NameObj.a | 18.462334% |
| NPC.a | 0.19521274% |

View File

@ -0,0 +1,6 @@
#pragma once
class Binder {
public:
};

View File

@ -0,0 +1,51 @@
#pragma once
#include <revolution.h>
#include "Game/Map/CollisionParts.h"
#include "Game/Map/HitInfo.h"
#include "Game/NameObj/NameObj.h"
class CollisionZone;
class CollisionCategorizedKeeper : public NameObj {
public:
CollisionCategorizedKeeper(s32);
virtual ~CollisionCategorizedKeeper();
virtual void movement();
void addToZone(CollisionParts *, s32);
void removeFromZone(CollisionParts *, s32);
void addToGlobal(CollisionParts *);
void removeFromGlobal(CollisionParts *);
HitInfo* mHitInfoArray; // _C
s32 _10;
s32 mZoneCount; // _14
CollisionZone* mZones[0x20]; // _18
s32 mZoneNum; // _98
u32 _9C;
u8 _A0;
u8 _A1;
u8 _A2;
u8 _A3;
};
class CollisionZone {
public:
CollisionZone(s32);
void addParts(CollisionParts *);
void calcMinMaxAndRadius();
void calcMinMaxAndRadiusIfMoveOuter(CollisionParts *);
void addAndUpdateMinMax(TVec3f, TVec3f);
void eraseParts(CollisionParts *);
s32 mZoneID; // _0
CollisionParts* mPartsArray[0x200]; // _4
s32 mNumParts; // _804
TVec3f _808;
f32 mRadius; // _814
TVec3f _818;
TVec3f _824;
};

View File

@ -0,0 +1,32 @@
#pragma once
#include <revolution.h>
#include "JSystem/JGeometry/TMatrix.h"
#include "JSystem/JGeometry/TPosition3.h"
class KCollisionServer;
class CollisionParts {
public:
CollisionParts();
u32 _0;
TMtx34f _4;
TMtx34f _34;
TMtx34f _64;
TMtx34f _94;
KCollisionServer* mKCL; // _C4
u32 _C8;
u8 _CC;
u8 _CD;
u8 _CE;
u8 _CF;
u8 _D0;
u32 _D4;
f32 _D8;
f32 _DC;
u32 _E0;
u32 _E4;
u32 _E8;
u32 _EC;
};

View File

@ -5,6 +5,7 @@
#include "Game/Util.h"
class CollisionParts;
class HitSensor;
class Triangle {
public:
@ -12,13 +13,23 @@ public:
JMapInfoIter getAttributes() const;
CollisionParts* _0;
u32 _4;
u32 _8;
TVec3f mFaceNormal; // _C
TVec3f _18;
TVec3f _24;
TVec3f _30;
TVec3f _3C;
TVec3f _48;
TVec3f _54;
u32 mIdx; // _4
HitSensor* mSensor; // _8
TVec3f mNormals[0x4]; // _C
TVec3f mPos0; // _3C
TVec3f mPos1; // _48
TVec3f mPos2; // _54
};
class HitInfo {
public:
Triangle mParentTriangle; // _0
f32 _60;
TVec3f _64;
TVec3f _70;
TVec3f _7C;
u8 _88;
u8 _89;
u8 _8A;
u8 _8B;
};

View File

@ -29,6 +29,7 @@ namespace JGeometry {
}
TVec3(T _x, T _y, T _z);
TVec3(int, int, int);
inline TVec3(T val) {
x = val;

View File

@ -0,0 +1,35 @@
#include "Game/Map/CollisionCategorizedKeeper.h"
void CollisionCategorizedKeeper::addToZone(CollisionParts *pParts, s32 zone) {
mZones[zone]->addParts(pParts);
mZoneCount++;
}
void CollisionCategorizedKeeper::removeFromZone(CollisionParts *pParts, s32 zone) {
mZones[zone]->eraseParts(pParts);
mZoneCount--;
}
void CollisionCategorizedKeeper::addToGlobal(CollisionParts *pParts) {
mZones[0]->addParts(pParts);
mZoneCount++;
}
void CollisionCategorizedKeeper::removeFromGlobal(CollisionParts *pParts) {
mZones[0]->eraseParts(pParts);
mZoneCount--;
}
CollisionZone::CollisionZone(s32 zoneID)
: mZoneID(zoneID), mNumParts(0), _808(0, 0, 0), mRadius(0.0f), _818(0, 0, 0), _824(0, 0, 0) {
}
void CollisionZone::addParts(CollisionParts* pParts) {
s32 cnt = mNumParts;
mNumParts++;
mPartsArray[cnt] = pParts;
if (mZoneID) {
calcMinMaxAndRadius();
}
}