mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-19 11:01:26 +02:00
A native port built on the Petari decompilation (previous commit): an HLE platform layer (OS, DVD, GX, audio, input, NAND) under the game's own code, an OpenXR presentation (a diorama around the player, a giant screen, the HUD and settings as compositor layers, SpaceWarp, dynamic resolution), Touch Plus controls, the tools that convert your own game files (tools/cook, which also takes the few pieces of data the game's executable holds from your sys/main.dol), and the port's changes to the decompilation (`git diff petari-base -- decomp`). README.md explains installing and building, docs/TECHNICAL.md how it works. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "Game/Camera/Camera.hpp"
|
|
#include <JSystem/JGeometry/TMatrix.hpp>
|
|
|
|
class CameraDPD : public Camera {
|
|
public:
|
|
enum CameraType {
|
|
CameraType_FixedPos = 0,
|
|
CameraType_UpdateWithTarget = 1,
|
|
CameraType_FollowWorldPos = 2,
|
|
};
|
|
CameraDPD(const char* pName = "DPD\x91\x80\x8d\xec\x83\x4a\x83\x81\x83\x89");
|
|
|
|
virtual void reset();
|
|
virtual CameraTargetObj* calc();
|
|
virtual CamTranslatorBase* createTranslator();
|
|
|
|
void setParam(s32 cameraType, f32 dist, f32 angleXRange, f32 angleYRange, f32 angleX, f32 speedBlendRate, f32 blendFriction, bool isVertical,
|
|
f32 angleYMin) {
|
|
mCameraType = cameraType;
|
|
mDist = dist;
|
|
mAngleXRange = angleXRange;
|
|
mAngleYRange = angleYRange;
|
|
mAngleX = angleX;
|
|
mSpeedBlendRate = speedBlendRate;
|
|
mBlendFriction = blendFriction;
|
|
mIsVertical = isVertical;
|
|
mAngleYMin = angleYMin;
|
|
}
|
|
|
|
/* 0x4C */ f32 mCorePadDistToDisplay;
|
|
/* 0x50 */ TVec2f mRealPointPos;
|
|
/* 0x58 */ TVec2f mBlendPointPos;
|
|
/* 0x60 */ TPos3f mMtx;
|
|
/* 0x90 */ bool mResetPointingPos;
|
|
/* 0x94 */ s32 mCameraType;
|
|
/* 0x98 */ f32 mDist;
|
|
/* 0x9C */ f32 mFovy;
|
|
/* 0xA0 */ f32 mAngleXRange;
|
|
/* 0xA4 */ f32 mAngleYRange;
|
|
/* 0xA8 */ f32 mAngleX;
|
|
/* 0xAC */ f32 mSpeedBlendRate;
|
|
/* 0xB0 */ f32 mBlendFriction;
|
|
/* 0xB4 */ bool mIsVertical;
|
|
/* 0xB8 */ f32 mAngleYMin;
|
|
};
|