Compare commits

...

4 Commits

Author SHA1 Message Date
Tristan 'Natrist' Cormier
5ee712b462
Merge b902b5484e into 817cec99fe 2026-02-21 19:26:33 -05:00
fallenoak
817cec99fe
feat(ui): add CGCamera::Target
Some checks are pending
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:cl compiler_name:MSVC cxx:cl os:windows-latest system_name:Windows test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:clang compiler_name:Clang cxx:clang++ os:macos-latest system_name:macOS test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:gcc compiler_name:GCC cxx:g++ os:ubuntu-latest system_name:Linux test_path:WhoaTest]) (push) Waiting to run
2026-02-21 14:11:22 -06:00
fallenoak
6675586a29
feat(ui): add CSimpleCamera::Position 2026-02-21 14:07:33 -06:00
Tristan Cormier
b902b5484e feat(glue): implement Script_AcceptedScanning 2026-01-11 17:00:18 -05:00
7 changed files with 20 additions and 1 deletions

View File

@ -39,6 +39,7 @@
#include <cstdio>
int32_t CGlueMgr::m_acceptedEULA = 1; // TODO
int32_t CGlueMgr::m_acceptedScanning = 1; // TODO
int32_t CGlueMgr::m_acceptedTerminationWithoutNotice;
int32_t CGlueMgr::m_acceptedTOS = 1; // TODO
int32_t CGlueMgr::m_accountMsgAvailable;

View File

@ -33,6 +33,7 @@ class CGlueMgr {
// Static variables
static int32_t m_acceptedEULA;
static int32_t m_acceptedScanning;
static int32_t m_acceptedTerminationWithoutNotice;
static int32_t m_acceptedTOS;
static int32_t m_accountMsgAvailable;

View File

@ -216,7 +216,14 @@ int32_t Script_ShowScanningNotice(lua_State* L) {
}
int32_t Script_ScanningAccepted(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
if (CGlueMgr::m_acceptedScanning) {
lua_pushnumber(L, 1.0);
}
else {
lua_pushnil(L);
}
return 1;
}
int32_t Script_AcceptScanning(lua_State* L) {

View File

@ -80,6 +80,10 @@ void CGCamera::SetupWorldProjection(const CRect& projRect) {
this->SetGxProjectionAndView(projRect);
}
C3Vector CGCamera::Target() const {
return this->m_position + this->Forward();
}
C3Vector CGCamera::Up() const {
if (this->m_relativeTo) {
return this->CSimpleCamera::Up() * this->ParentToWorld();

View File

@ -27,6 +27,7 @@ class CGCamera : public CSimpleCamera {
CGCamera();
C33Matrix ParentToWorld() const;
void SetupWorldProjection(const CRect& projRect);
C3Vector Target() const;
private:
// Private member variables

View File

@ -84,6 +84,10 @@ C3Vector CSimpleCamera::Right() const {
return { this->m_facing.b0, this->m_facing.b1, this->m_facing.b2 };
}
const C3Vector& CSimpleCamera::Position() const {
return this->m_position;
}
void CSimpleCamera::SetFacing(const C3Vector& forward) {
BuildBillboardMatrix(forward, this->m_facing);
}

View File

@ -18,6 +18,7 @@ class CSimpleCamera {
// Public member functions
CSimpleCamera(float nearZ, float farZ, float fov);
CM2Scene* GetScene();
const C3Vector& Position() const;
void SetFacing(const C3Vector& forward);
void SetFacing(const C3Vector& forward, const C3Vector& up);
void SetFacing(float yaw, float pitch, float roll);