Files
ss/include/d/lyt/d_lyt_map_global.h
T
2025-11-23 16:00:59 +01:00

230 lines
4.7 KiB
C++

#ifndef D_LYT_MAP_GLOBAL_H
#define D_LYT_MAP_GLOBAL_H
#include "common.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
class dLytMapGlobal_c {
public:
dLytMapGlobal_c();
~dLytMapGlobal_c() {
sInstance = nullptr;
}
enum MapMode_e {
MAPMODE_WORLD = 0,
// aka area
MAPMODE_PROVINCE = 1,
// aka area
MAPMODE_WORLD_SKY = 2,
// aka course
MAPMODE_STAGE = 3,
// aka detail
MAPMODE_ZOOM = 4,
};
static dLytMapGlobal_c *GetInstance() {
return sInstance;
}
const mVec3_c &getMapScroll() const {
return mMapScroll;
}
void setMapScroll(const mVec3_c &v) {
mMapScroll = v;
}
void setField_0x0C(const mVec2_c &v) {
field_0x0C = v;
}
const mVec2_c &getField_0x20() const {
return field_0x20;
}
void setField_0x20(const mVec2_c &v) {
field_0x20 = v;
}
const mVec2_c &getField_0x28() const {
return field_0x28;
}
void setField_0x28(const mVec2_c &v) {
field_0x28 = v;
}
void setMapRotationCenter(const mVec3_c &v) {
mMapRotationCenter = v;
}
const mVec3_c &getMapRotationCenter() const {
return mMapRotationCenter;
}
const mAng &getMapRotation() const {
return mMapRotation;
}
void setMapRotation(const mAng &rot) {
mMapRotation = rot;
}
const mVec3_c &getPlayerPos() const {
return mPlayerPosition;
}
u8 getField_0x55() const {
return field_0x55;
}
void setField_0x55(u8 v) {
field_0x55 = v;
}
const mAng &getField_0x56() const {
return field_0x56;
}
u8 getAlpha() const {
return mAlpha;
}
void setAlpha(u8 alpha) {
mAlpha = alpha;
}
s32 getCurrentMapMode() const {
return mCurrentMapMode;
}
void setCurrentMapMode(s32 mode) {
mCurrentMapMode = mode;
}
s32 getNextMapMode() const {
return mNextMapMode;
}
void setNextMapMode(s32 mode) {
mNextMapMode = mode;
}
f32 getZoomFrame() const {
return mZoomFrame;
}
void setZoomFrame(f32 v) {
mZoomFrame = v;
}
void setField_0x58(f32 v) {
field_0x58 = v;
}
f32 getField_0x58() const {
return field_0x58;
}
f32 getField_0x44() const {
return field_0x44;
}
void setField_0x44(f32 v) {
field_0x44 = v;
}
s32 getFloor() const {
return mFloor;
}
void setFloor(s32 floor) {
mFloor = floor;
}
u8 getField_0x4C() const {
return field_0x4C;
}
void setField_0x4C(u8 v) {
field_0x4C = v;
}
u8 getField_0x4D() const {
return field_0x4D;
}
void setField_0x4D(u8 v) {
field_0x4D = v;
}
u8 getField_0x4F() const {
return field_0x4F;
}
void setField_0x4F(u8 v) {
field_0x4F = v;
}
s32 getMapEvent() const {
return mMapEvent;
}
void setMapEvent(s32 v) {
mMapEvent = v;
}
bool isInMapEvent() const {
return mInMapEvent;
}
void setInMapEvent(bool v) {
mInMapEvent = v;
}
void projectOntoMap(mVec2_c &result, const mVec3_c &position) const;
void unprojectFromMap(mVec3_c &result, const mVec2_c &position) const;
void unprojectFromMap(mVec3_c &result, const mVec2_c &position, const mAng &rot) const;
void unprojectFromMap(mVec3_c &result, const mVec2_c &position, const mVec3_c &v2, const mAng &rot) const;
private:
static dLytMapGlobal_c *sInstance;
void projectOntoMap(
mVec2_c &result, const mVec3_c &position, const mVec3_c &mapScroll, const mVec3_c &mapRotationCenter,
const mAng &rot, f32 f1, f32 f2
) const;
void unprojectFromMap(
mVec3_c &result, const mVec2_c &position, const mVec2_c &v1, const mVec3_c &mapScroll,
const mVec3_c &mapRotationCenter, const mAng &rot, f32 f1, f32 f2
) const;
/* 0x00 */ mVec3_c mMapScroll;
/* 0x0C */ mVec2_c field_0x0C;
/* 0x14 */ mVec3_c mMapRotationCenter;
/* 0x20 */ mVec2_c field_0x20;
/* 0x28 */ mVec2_c field_0x28;
/* 0x30 */ mVec3_c mPlayerPosition;
/* 0x3C */ mAng mMapRotation;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s32 mFloor;
/* 0x4C */ u8 field_0x4C;
/* 0x4D */ u8 field_0x4D;
/* 0x4E */ u8 mAlpha;
/* 0x4F */ u8 field_0x4F;
/* 0x50 */ s32 mMapEvent;
/* 0x54 */ bool mInMapEvent;
/* 0x55 */ u8 field_0x55;
/* 0x56 */ mAng field_0x56;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ s32 mCurrentMapMode;
/* 0x60 */ s32 mNextMapMode;
/* 0x64 */ f32 mZoomFrame; ///< 0.0f when zoomed out, 1.0f when zoomed in
};
#endif