mirror of
https://github.com/encounter/tww.git
synced 2026-03-30 11:41:09 -07:00
343 lines
9.9 KiB
C++
343 lines
9.9 KiB
C++
#ifndef D_SNAP_H
|
|
#define D_SNAP_H
|
|
|
|
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
|
#include "f_op/f_op_actor.h"
|
|
|
|
enum {
|
|
/* 0x00 */ DSNAP_TYPE_UNK00,
|
|
/* 0x01 */ DSNAP_TYPE_UNK01,
|
|
/* 0x02 */ DSNAP_TYPE_UNK02,
|
|
/* 0x03 */ DSNAP_TYPE_UNK03,
|
|
/* 0x04 */ DSNAP_TYPE_UNK04,
|
|
/* 0x05 */ DSNAP_TYPE_UNK05,
|
|
/* 0x06 */ DSNAP_TYPE_UNK06,
|
|
/* 0x07 */ DSNAP_TYPE_UNK07,
|
|
/* 0x08 */ DSNAP_TYPE_UNK08,
|
|
/* 0x09 */ DSNAP_TYPE_UNK09,
|
|
/* 0x0A */ DSNAP_TYPE_UNK0A,
|
|
/* 0x0B */ DSNAP_TYPE_UNK0B,
|
|
/* 0x0C */ DSNAP_TYPE_UNK0C,
|
|
/* 0x0D */ DSNAP_TYPE_UNK0D,
|
|
/* 0x0E */ DSNAP_TYPE_UNK0E,
|
|
/* 0x0F */ DSNAP_TYPE_UNK0F,
|
|
/* 0x10 */ DSNAP_TYPE_UNK10,
|
|
/* 0x11 */ DSNAP_TYPE_UNK11,
|
|
/* 0x12 */ DSNAP_TYPE_UNK12,
|
|
/* 0x13 */ DSNAP_TYPE_UNK13,
|
|
/* 0x14 */ DSNAP_TYPE_UNK14,
|
|
/* 0x15 */ DSNAP_TYPE_UNK15,
|
|
/* 0x16 */ DSNAP_TYPE_UNK16,
|
|
/* 0x17 */ DSNAP_TYPE_UNK17,
|
|
/* 0x18 */ DSNAP_TYPE_UNK18,
|
|
/* 0x19 */ DSNAP_TYPE_UNK19,
|
|
/* 0x1A */ DSNAP_TYPE_UNK1A,
|
|
/* 0x1B */ DSNAP_TYPE_UNK1B,
|
|
/* 0x1C */ DSNAP_TYPE_UNK1C,
|
|
/* 0x1D */ DSNAP_TYPE_UNK1D,
|
|
/* 0x1E */ DSNAP_TYPE_UNK1E,
|
|
/* 0x1F */ DSNAP_TYPE_UNK1F,
|
|
/* 0x20 */ DSNAP_TYPE_UNK20,
|
|
/* 0x21 */ DSNAP_TYPE_UNK21,
|
|
/* 0x22 */ DSNAP_TYPE_UNK22,
|
|
/* 0x23 */ DSNAP_TYPE_UNK23,
|
|
/* 0x24 */ DSNAP_TYPE_UNK24,
|
|
/* 0x25 */ DSNAP_TYPE_UNK25,
|
|
/* 0x26 */ DSNAP_TYPE_UNK26,
|
|
/* 0x27 */ DSNAP_TYPE_UNK27,
|
|
/* 0x28 */ DSNAP_TYPE_UNK28,
|
|
/* 0x29 */ DSNAP_TYPE_UNK29,
|
|
/* 0x2A */ DSNAP_TYPE_UNK2A,
|
|
/* 0x2B */ DSNAP_TYPE_UNK2B,
|
|
/* 0x2C */ DSNAP_TYPE_UNK2C,
|
|
/* 0x2D */ DSNAP_TYPE_UNK2D,
|
|
/* 0x2E */ DSNAP_TYPE_UNK2E,
|
|
/* 0x2F */ DSNAP_TYPE_UNK2F,
|
|
/* 0x30 */ DSNAP_TYPE_UNK30,
|
|
/* 0x31 */ DSNAP_TYPE_UNK31,
|
|
/* 0x32 */ DSNAP_TYPE_UNK32,
|
|
/* 0x33 */ DSNAP_TYPE_UNK33,
|
|
/* 0x34 */ DSNAP_TYPE_UNK34,
|
|
/* 0x35 */ DSNAP_TYPE_UNK35,
|
|
/* 0x36 */ DSNAP_TYPE_UNK36,
|
|
/* 0x37 */ DSNAP_TYPE_UNK37,
|
|
/* 0x38 */ DSNAP_TYPE_UNK38,
|
|
/* 0x39 */ DSNAP_TYPE_UNK39,
|
|
/* 0x3A */ DSNAP_TYPE_UNK3A,
|
|
/* 0x3B */ DSNAP_TYPE_UNK3B,
|
|
/* 0x3C */ DSNAP_TYPE_UNK3C,
|
|
/* 0x3D */ DSNAP_TYPE_UNK3D,
|
|
/* 0x3E */ DSNAP_TYPE_UNK3E,
|
|
/* 0x3F */ DSNAP_TYPE_UNK3F,
|
|
/* 0x40 */ DSNAP_TYPE_UNK40,
|
|
/* 0x41 */ DSNAP_TYPE_UNK41,
|
|
/* 0x42 */ DSNAP_TYPE_UNK42,
|
|
/* 0x43 */ DSNAP_TYPE_UNK43,
|
|
/* 0x44 */ DSNAP_TYPE_UNK44,
|
|
/* 0x45 */ DSNAP_TYPE_UNK45,
|
|
/* 0x46 */ DSNAP_TYPE_UNK46,
|
|
/* 0x47 */ DSNAP_TYPE_UNK47,
|
|
/* 0x48 */ DSNAP_TYPE_UNK48,
|
|
/* 0x49 */ DSNAP_TYPE_UNK49,
|
|
/* 0x4A */ DSNAP_TYPE_UNK4A,
|
|
/* 0x4B */ DSNAP_TYPE_UNK4B,
|
|
/* 0x4C */ DSNAP_TYPE_UNK4C,
|
|
/* 0x4D */ DSNAP_TYPE_JI1,
|
|
/* 0x4E */ DSNAP_TYPE_UNK4E,
|
|
/* 0x4F */ DSNAP_TYPE_UNK4F,
|
|
/* 0x50 */ DSNAP_TYPE_UNK50,
|
|
/* 0x51 */ DSNAP_TYPE_UNK51,
|
|
/* 0x52 */ DSNAP_TYPE_UNK52,
|
|
/* 0x53 */ DSNAP_TYPE_UNK53,
|
|
/* 0x54 */ DSNAP_TYPE_UNK54,
|
|
/* 0x55 */ DSNAP_TYPE_KAMOME,
|
|
/* 0x56 */ DSNAP_TYPE_UNK56,
|
|
/* 0x57 */ DSNAP_TYPE_UNK57,
|
|
/* 0x58 */ DSNAP_TYPE_UNK58,
|
|
/* 0x59 */ DSNAP_TYPE_UNK59,
|
|
/* 0x5A */ DSNAP_TYPE_UNK5A,
|
|
/* 0x5B */ DSNAP_TYPE_UNK5B,
|
|
/* 0x5C */ DSNAP_TYPE_UNK5C,
|
|
/* 0x5D */ DSNAP_TYPE_UNK5D,
|
|
/* 0x5E */ DSNAP_TYPE_UNK5E,
|
|
/* 0x5F */ DSNAP_TYPE_UNK5F,
|
|
/* 0x60 */ DSNAP_TYPE_UNK60,
|
|
/* 0x61 */ DSNAP_TYPE_UNK61,
|
|
/* 0x62 */ DSNAP_TYPE_UNK62,
|
|
/* 0x63 */ DSNAP_TYPE_UNK63,
|
|
/* 0x64 */ DSNAP_TYPE_UNK64,
|
|
/* 0x65 */ DSNAP_TYPE_UNK65,
|
|
/* 0x66 */ DSNAP_TYPE_UNK66,
|
|
/* 0x67 */ DSNAP_TYPE_UNK67,
|
|
/* 0x68 */ DSNAP_TYPE_UNK68,
|
|
/* 0x69 */ DSNAP_TYPE_UNK69,
|
|
/* 0x6A */ DSNAP_TYPE_UNK6A,
|
|
/* 0x6B */ DSNAP_TYPE_UNK6B,
|
|
/* 0x6C */ DSNAP_TYPE_UNK6C,
|
|
/* 0x6D */ DSNAP_TYPE_UNK6D,
|
|
/* 0x6E */ DSNAP_TYPE_UNK6E,
|
|
/* 0x6F */ DSNAP_TYPE_UNK6F,
|
|
/* 0x70 */ DSNAP_TYPE_UNK70,
|
|
/* 0x71 */ DSNAP_TYPE_UNK71,
|
|
/* 0x72 */ DSNAP_TYPE_UNK72,
|
|
/* 0x73 */ DSNAP_TYPE_UNK73,
|
|
/* 0x74 */ DSNAP_TYPE_UNK74,
|
|
/* 0x75 */ DSNAP_TYPE_UNK75,
|
|
/* 0x76 */ DSNAP_TYPE_UNK76,
|
|
/* 0x77 */ DSNAP_TYPE_UNK77,
|
|
/* 0x78 */ DSNAP_TYPE_UNK78,
|
|
/* 0x79 */ DSNAP_TYPE_UNK79,
|
|
/* 0x7A */ DSNAP_TYPE_UNK7A,
|
|
/* 0x7B */ DSNAP_TYPE_UNK7B,
|
|
/* 0x7C */ DSNAP_TYPE_UNK7C,
|
|
/* 0x7D */ DSNAP_TYPE_UNK7D,
|
|
/* 0x7E */ DSNAP_TYPE_ROTEN,
|
|
/* 0x7F */ DSNAP_TYPE_UNK7F,
|
|
/* 0x80 */ DSNAP_TYPE_BS,
|
|
/* 0x81 */ DSNAP_TYPE_UNK81,
|
|
/* 0x82 */ DSNAP_TYPE_UNK82,
|
|
/* 0x83 */ DSNAP_TYPE_UNK83,
|
|
/* 0x84 */ DSNAP_TYPE_UNK84,
|
|
/* 0x85 */ DSNAP_TYPE_UNK85,
|
|
/* 0x86 */ DSNAP_TYPE_UNK86,
|
|
/* 0x87 */ DSNAP_TYPE_UNK87,
|
|
/* 0x88 */ DSNAP_TYPE_UNK88,
|
|
/* 0x89 */ DSNAP_TYPE_UNK89,
|
|
/* 0x8A */ DSNAP_TYPE_MD,
|
|
/* 0x8B */ DSNAP_TYPE_UNK8B,
|
|
/* 0x8C */ DSNAP_TYPE_UNK8C,
|
|
/* 0x8D */ DSNAP_TYPE_UNK8D,
|
|
/* 0x8E */ DSNAP_TYPE_UNK8E,
|
|
/* 0x8F */ DSNAP_TYPE_UNK8F,
|
|
/* 0x90 */ DSNAP_TYPE_UNK90,
|
|
/* 0x91 */ DSNAP_TYPE_UNK91,
|
|
/* 0x92 */ DSNAP_TYPE_UNK92,
|
|
/* 0x93 */ DSNAP_TYPE_UNK93,
|
|
/* 0x94 */ DSNAP_TYPE_UNK94,
|
|
/* 0x95 */ DSNAP_TYPE_UNK95,
|
|
/* 0x96 */ DSNAP_TYPE_UNK96,
|
|
/* 0x97 */ DSNAP_TYPE_UNK97,
|
|
/* 0x98 */ DSNAP_TYPE_BTSW,
|
|
/* 0x99 */ DSNAP_TYPE_DR,
|
|
/* 0x9A */ DSNAP_TYPE_UNK9A,
|
|
/* 0x9B */ DSNAP_TYPE_UNK9B,
|
|
/* 0x9C */ DSNAP_TYPE_UNK9C,
|
|
/* 0x9D */ DSNAP_TYPE_UNK9D,
|
|
/* 0x9E */ DSNAP_TYPE_UNK9E,
|
|
/* 0x9F */ DSNAP_TYPE_UNK9F,
|
|
/* 0xA0 */ DSNAP_TYPE_UNKA0,
|
|
/* 0xA1 */ DSNAP_TYPE_UNKA1,
|
|
/* 0xA2 */ DSNAP_TYPE_UNKA2,
|
|
/* 0xA3 */ DSNAP_TYPE_UNKA3,
|
|
/* 0xA4 */ DSNAP_TYPE_UNKA4,
|
|
/* 0xA5 */ DSNAP_TYPE_UNKA5,
|
|
/* 0xA6 */ DSNAP_TYPE_UNKA6,
|
|
/* 0xA7 */ DSNAP_TYPE_UNKA7,
|
|
/* 0xA8 */ DSNAP_TYPE_UNKA8,
|
|
/* 0xA9 */ DSNAP_TYPE_UNKA9,
|
|
/* 0xAA */ DSNAP_TYPE_BK,
|
|
/* 0xAB */ DSNAP_TYPE_UNKAB,
|
|
/* 0xAC */ DSNAP_TYPE_UNKAC,
|
|
/* 0xAD */ DSNAP_TYPE_UNKAD,
|
|
/* 0xAE */ DSNAP_TYPE_UNKAE,
|
|
/* 0xAF */ DSNAP_TYPE_UNKAF,
|
|
/* 0xB0 */ DSNAP_TYPE_UNKB0,
|
|
/* 0xB1 */ DSNAP_TYPE_UNKB1,
|
|
/* 0xB2 */ DSNAP_TYPE_UNKB2,
|
|
/* 0xB3 */ DSNAP_TYPE_UNKB3,
|
|
/* 0xB4 */ DSNAP_TYPE_UNKB4,
|
|
/* 0xB5 */ DSNAP_TYPE_UNKB5,
|
|
/* 0xB6 */ DSNAP_TYPE_AM2,
|
|
/* 0xB7 */ DSNAP_TYPE_AM,
|
|
/* 0xB8 */ DSNAP_TYPE_UNKB8,
|
|
/* 0xB9 */ DSNAP_TYPE_RD,
|
|
/* 0xBA */ DSNAP_TYPE_UNKBA,
|
|
/* 0xBB */ DSNAP_TYPE_UNKBB,
|
|
/* 0xBC */ DSNAP_TYPE_UNKBC,
|
|
/* 0xBD */ DSNAP_TYPE_UNKBD,
|
|
/* 0xBE */ DSNAP_TYPE_UNKBE,
|
|
/* 0xBF */ DSNAP_TYPE_UNKBF,
|
|
/* 0xC0 */ DSNAP_TYPE_UNKC0,
|
|
/* 0xC1 */ DSNAP_TYPE_UNKC1,
|
|
/* 0xC2 */ DSNAP_TYPE_UNKC2,
|
|
/* 0xC3 */ DSNAP_TYPE_UNKC3,
|
|
/* 0xC4 */ DSNAP_TYPE_UNKC4,
|
|
/* 0xC5 */ DSNAP_TYPE_UNKC5,
|
|
/* 0xC6 */ DSNAP_TYPE_UNKC6,
|
|
/* 0xC7 */ DSNAP_TYPE_UNKC7,
|
|
/* 0xC8 */ DSNAP_TYPE_UNKC8,
|
|
/* 0xC9 */ DSNAP_TYPE_UNKC9,
|
|
/* 0xCA */ DSNAP_TYPE_UNKCA,
|
|
/* 0xCB */ DSNAP_TYPE_UNKCB,
|
|
/* 0xCC */ DSNAP_TYPE_UNKCC,
|
|
/* 0xCD */ DSNAP_TYPE_UNKCD,
|
|
/* 0xCE */ DSNAP_TYPE_UNKCE,
|
|
/* 0xCF */ DSNAP_TYPE_UNKCF,
|
|
/* 0xD0 */ DSNAP_TYPE_LAST_INDEX,
|
|
};
|
|
|
|
class dSnap_Obj {
|
|
public:
|
|
/* 0x00 */ cXyz mCenter;
|
|
/* 0x0C */ f32 mRadius;
|
|
/* 0x10 */ f32 mHeight;
|
|
/* 0x14 */ fpc_ProcID mActorPID;
|
|
/* 0x18 */ u8 mPhoto;
|
|
/* 0x19 */ u8 field_0x19;
|
|
/* 0x1A */ u8 field_0x1a;
|
|
/* 0x1B */ u8 field_0x1b;
|
|
/* 0x1C */ s16 mCullAngle;
|
|
/* 0x1E */ s16 mAngleY;
|
|
/* 0x20 */ s32 mCapturedPixels;
|
|
/* 0x24 */ f32 mCapturedRatio;
|
|
/* 0x28 */ s16 mMinX;
|
|
/* 0x2A */ s16 mMinY;
|
|
/* 0x2C */ s16 mMaxX;
|
|
/* 0x2E */ s16 mMaxY;
|
|
/* 0x30 */ /* vtable */
|
|
|
|
public:
|
|
dSnap_Obj();
|
|
virtual ~dSnap_Obj() {}
|
|
|
|
void DebugArea2D() {}
|
|
void GetActor() const {}
|
|
void GetArg() const {}
|
|
void GetDRRatio() {}
|
|
void GetLen(Vec&) const {}
|
|
s16 GetMinX() { return mMinX; }
|
|
s16 GetMinY() { return mMinY; }
|
|
s16 GetMaxX() { return mMaxX; }
|
|
s16 GetMaxY() { return mMaxY; }
|
|
int GetPhoto() const { return mPhoto; }
|
|
void GetPoint() {}
|
|
void SetDRRatio(f32) {}
|
|
void SetPoint(s32) {}
|
|
void drawCamRange() {}
|
|
|
|
f32 CalcArea2D();
|
|
void draw();
|
|
void SetGeo(const Vec& center, f32 radius, f32 height, s16 r5);
|
|
void SetGeoSph(const Vec& center, f32 radius);
|
|
void SetInf(u8, const fopAc_ac_c*, u8, u8, s16);
|
|
void SetAreaClear();
|
|
void SetArea(s16, s16);
|
|
bool ChkPhoto(int);
|
|
bool ChkSuccess(s32, f32);
|
|
bool ChkCamCull() const;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(dSnap_Obj) == 0x34);
|
|
|
|
class dSnap_RegistObjElm {
|
|
public:
|
|
/* 0x00 */ dSnap_Obj m_obj;
|
|
/* 0x34 */ f32 field_0x34;
|
|
|
|
public:
|
|
dSnap_RegistObjElm() {}
|
|
virtual ~dSnap_RegistObjElm() {}
|
|
void Init();
|
|
void Regist(const dSnap_Obj&);
|
|
};
|
|
|
|
class dSnap_packet : public J3DPacket {
|
|
public:
|
|
virtual ~dSnap_packet() {}
|
|
|
|
void DebugDraw() {}
|
|
int GetResult() { return mResult; }
|
|
u8 GetResultDetail() { return mResultDetail; }
|
|
|
|
void Create();
|
|
void ReleaseShutter();
|
|
u32 ChkReleaseShutter();
|
|
void Execute();
|
|
int Regist(const dSnap_Obj&);
|
|
virtual void draw();
|
|
void ClearAlphaBuffer();
|
|
void Judge();
|
|
int FindPhoto(int, int);
|
|
int JudgePost();
|
|
int JudgeBikutsuki();
|
|
int JudgeCoupleLook();
|
|
int JudgeGF();
|
|
int JudgeGenzo();
|
|
int JudgeObasan4();
|
|
int JudgeTestM();
|
|
int JudgeGene();
|
|
int JudgeFigure(int);
|
|
void SetResult();
|
|
|
|
/* 0x010 */ int field_0x10;
|
|
/* 0x014 */ int field_0x14;
|
|
/* 0x018 */ dSnap_RegistObjElm m_tbl[0x3F];
|
|
/* 0xEDC */ int mFlag;
|
|
/* 0xEE0 */ int mResult;
|
|
/* 0xEE4 */ u8 mResultDetail;
|
|
|
|
static int (dSnap_packet::*m_judge_tbl[])();
|
|
};
|
|
|
|
int dSnap_PhotoIndex2TableIndex(int);
|
|
int dSnap_GetFigRoomId(int);
|
|
void dSnap_MatDl();
|
|
void dSnap_AlphaClearDL();
|
|
void dSnap_Create();
|
|
void dSnap_ReleaseShutter();
|
|
void dSnap_Execute();
|
|
int dSnap_GetResult();
|
|
u8 dSnap_GetResultDetail();
|
|
void dSnap_RegistSnapObj(dSnap_Obj&);
|
|
void dSnap_RegistFig(u8, fopAc_ac_c*, f32, f32, f32);
|
|
void dSnap_RegistFig(u8, fopAc_ac_c*, const Vec&, s16, f32, f32, f32);
|
|
void dSnap_DebugDraw();
|
|
void dSnap_Delete();
|
|
|
|
inline void dSnap_AlphaClearDebug() {}
|
|
inline void dSnap_FigChkSizeNone(int) {}
|
|
inline void dSnap_MatDLDebug() {}
|
|
inline void dSnap_project(Vec*, Vec*) {}
|
|
|
|
#endif /* D_SNAP_H */
|