mirror of
https://github.com/zeldaret/ss
synced 2026-05-26 07:38:54 -04:00
8a3710824b
* c_cc_d soooo close * d_cc_shape_colliders -> d_cc_d * ported over changes from #43 * Oops, didnt save * use better collision functions in bombf * bombf fixes * bombf actorPostCreate matching * fix * small fix for cCcD_UnkAttr Set function * more cleanup(?) for c_cc_d * d_cc_mass_s OK * Initial d_cc_s setup * some easy funcs --------- Co-authored-by: robojumper <robojumper@gmail.com>
75 lines
2.5 KiB
C++
75 lines
2.5 KiB
C++
#ifndef C_CC_S_H
|
|
#define C_CC_S_H
|
|
|
|
#include "common.h"
|
|
#include "d/a/obj/d_a_obj_base.h"
|
|
#include "d/col/c/c_cc_d.h"
|
|
#include "m/m_mtx.h"
|
|
#include "m/m_vec.h"
|
|
|
|
/**
|
|
* This still seems to be exist, but looks like was heavily revised.
|
|
* No more virtual functions
|
|
* a couple more entry arrays (a Matrix one and a model one)
|
|
*
|
|
* This file is largely here to support future changes?
|
|
* - dCcS copies and pastes the content. Otherwise the ctor is weird
|
|
*/
|
|
|
|
enum WeightType {
|
|
WeightType_0 = 0,
|
|
WeightType_1 = 1,
|
|
WeightType_2 = 2,
|
|
};
|
|
|
|
class cCcS {
|
|
public:
|
|
/* 0x0000 */ cCcD_Obj *mpObjAt[0x200];
|
|
/* 0x0800 */ cCcD_Obj *mpObjTg[0x300];
|
|
/* 0x1400 */ cCcD_Obj *mpObjCo[0x200];
|
|
/* 0x1c00 */ cCcD_Obj *mpObj[0x340];
|
|
/* 0x2900 */ UNKTYPE *mpUnk[0x100];
|
|
/* 0x2D00 */ u16 mObjAtCount;
|
|
/* 0x2d02 */ u16 mObjTgCount;
|
|
/* 0x2D04 */ u16 mObjCoCount;
|
|
/* 0x2D06 */ u16 mObjCount;
|
|
/* 0x2D08 */ u32 mUnkCount;
|
|
/* 0x2D0C */ cCcD_DivideArea mDivideArea;
|
|
/* 0x2D4C */ bool mbAreaSet;
|
|
/* 0x2D50 */ mMtx_c mAreas[16][2]; // could be a structure?
|
|
/* 0x3350 */ int mAreaCount;
|
|
|
|
cCcS() {}
|
|
|
|
void Ct();
|
|
void Dt();
|
|
|
|
void Set(cCcD_Obj *);
|
|
|
|
void ChkCo(mVec3_c *, dAcObjBase_c *);
|
|
bool fn_80357c90(mVec3_c *, mVec3_c *, u32, UNKTYPE *);
|
|
|
|
// WeightType GetWt(u8) const;
|
|
// void ClrCoHitInf();
|
|
// void ClrTgHitInf();
|
|
// void ClrAtHitInf();
|
|
// bool ChkNoHitAtTg(cCcD_Obj *, cCcD_Obj *);
|
|
// void ChkAtTg();
|
|
// bool ChkNoHitCo(cCcD_Obj *, cCcD_Obj *);
|
|
// void CalcTgPlusDmg(cCcD_Obj *, cCcD_Obj *, cCcD_Stts *, cCcD_Stts *);
|
|
// void SetAtTgCommonHitInf(cCcD_Obj *, cCcD_Obj *, cXyz *);
|
|
// void SetCoCommonHitInf(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
|
// void SetPosCorrect(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
|
// void CalcArea();
|
|
// void Move();
|
|
// void DrawClear();
|
|
// void SetCoGObjInf(bool, bool, cCcD_ObjInf *, cCcD_ObjInf *, cCcD_Stts *, cCcD_Stts *, cCcD_GStts *, cCcD_GStts
|
|
// *); void SetAtTgGObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, cCcD_ObjInf *, cCcD_ObjInf *, cCcD_Stts *,
|
|
// cCcD_Stts *, cCcD_GStts *, cCcD_GStts *, cXyz *); bool ChkNoHitGAtTg(cCcD_ObjInf const *, cCcD_ObjInf const *,
|
|
// cCcD_GStts *, cCcD_GStts *); bool ChkAtTgHitAfterCross(bool, bool, cCcD_ObjInf const *, cCcD_ObjInf const *,
|
|
// cCcD_Stts *, cCcD_Stts *, cCcD_GStts *, cCcD_GStts *); bool ChkNoHitGCo(cCcD_Obj *, cCcD_Obj *); ~cCcS() {} void
|
|
// MoveAfterCheck(); void SetCoGCorrectProc(cCcD_Obj *, cCcD_Obj *);
|
|
};
|
|
|
|
#endif /* C_CC_S_H */
|