Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions mc2hook/mc2hook/age/gfx/rstate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ Matrix44 gfxState::GetCameraMatrix()
return gfxState::sm_Camera;
}

void gfxState::SetWorld(Matrix44 const& mtx) {
hook::StaticThunk<0x5EDB00>::Call<void>(&mtx);
}

void gfxState::SetWorld(Matrix34 const& mtx) {
hook::StaticThunk<0x5EDB20>::Call<void>(&mtx);
}

void gfxState::SetCull(gfxCullMode mode)
{
hook::StaticThunk<0x5EE1A0>::Call<void>(static_cast<int>(mode));
Expand Down
2 changes: 2 additions & 0 deletions mc2hook/mc2hook/age/gfx/rstate.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ class gfxState
public:
static void SetCamera(Matrix44 const& mtx);
static void SetCamera(Matrix34 const& mtx);
static void SetWorld(Matrix44 const& mtx);
static void SetWorld(Matrix34 const& mtx);
public:
static Matrix44 GetCameraMatrix();
static void SetCull(gfxCullMode mode);
Expand Down
6 changes: 6 additions & 0 deletions mc2hook/mc2hook/age/gfx/viewport.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "viewport.h"

void gfxViewport::Perspective(float const& fov, float const& aspect, float const& near_clip, float const& far_clip)
{
hook::StaticThunk<0x5FA880>::Call<void>(&fov, &aspect, &near_clip, &far_clip);
}
8 changes: 8 additions & 0 deletions mc2hook/mc2hook/age/gfx/viewport.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once
#include <mc2hook\mc2hook.h>

class gfxViewport
{
public:
static void Perspective(float const& fov, float const& aspect, float const& near_clip, float const& far_clip);
};
4 changes: 2 additions & 2 deletions mc2hook/mc2hook/age/input/keyboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ bool ioKeyboard::GetKey(uint8_t keycode)
bool ioKeyboard::GetKeyDown(uint8_t keycode)
{
return (m_Keys.ptr()[KEYINDEX(0, keycode)] ^ m_Keys.ptr()[KEYINDEX(1, keycode)])
& m_Keys.ptr()[KEYINDEX(1 - m_Active.get(), keycode)];
& m_Keys.ptr()[KEYINDEX(GetActiveFlag(), keycode)];
}

bool ioKeyboard::GetKeyUp(uint8_t keycode)
{
return (m_Keys.ptr()[KEYINDEX(0, keycode)] ^ m_Keys.ptr()[KEYINDEX(1, keycode)])
& m_Keys.ptr()[KEYINDEX(1 - m_Active.get(), keycode)];
& m_Keys.ptr()[KEYINDEX(!GetActiveFlag(), keycode)];
}
6 changes: 6 additions & 0 deletions mc2hook/mc2hook/age/input/keyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ class ioKeyboard
private:
static hook::Type<int> m_Active;
static hook::Type<uint8_t[512]> m_Keys;

static bool GetActiveFlag()
{
return m_Active != 0;
}

public:
static bool GetKey(uint8_t keycode);
static bool GetKeyDown(uint8_t keycode);
Expand Down
16 changes: 8 additions & 8 deletions mc2hook/mc2hook/age/vector/matrix34.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,17 @@ void Matrix34::MakeRotateUnitAxis(Vector3 const& axis, float angle)
float sine = sin(angle);
float versine = 1.0f - cosine;

SetRow(0, Vector3(axis.X * axis.X * versine + cosine,
axis.Y * axis.X * versine + sine * axis.Z,
axis.Z * axis.X * versine - sine * axis.Y));
SetRow(0, Vector3(axis.X * axis.X * versine + cosine,
axis.Y * axis.X * versine + sine * axis.Z,
axis.Z * axis.X * versine - sine * axis.Y));

SetRow(1, Vector3(axis.Y * axis.X * versine - sine * axis.Z,
axis.Y * axis.Y * versine + cosine,
axis.Z * axis.Z * versine + cosine));
axis.Y * axis.Y * versine + cosine,
axis.Z * axis.Y * versine + sine * axis.X));

SetRow(2, Vector3(axis.Z * axis.X * versine + sine * axis.Y,
axis.Z * axis.Y * versine + sine * axis.X,
axis.Z * axis.Y * versine - sine * axis.X));
axis.Z * axis.Y * versine - sine * axis.X,
axis.Z * axis.Z * versine + cosine));
}

void Matrix34::MakeScale(float xScale, float yScale, float zScale) {
Expand Down
15 changes: 15 additions & 0 deletions mc2hook/mc2hook/age/vector/matrix44.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,18 @@ void Matrix44::FromMatrix34(Matrix34 const& m34)
SetRow(0, Vector4(m34c.X, m34c.Y, m34c.Z, 0.0f));
SetRow(0, Vector4(m34d.X, m34d.Y, m34d.Z, 1.0f));
}

Matrix34 Matrix44::ToMatrix34()
{
Vector4 m34a = GetRow(0);
Vector4 m34b = GetRow(1);
Vector4 m34c = GetRow(2);
Vector4 m34d = GetRow(3);

Matrix34 returnMat;
returnMat.SetRow(0, Vector3(m34a.X, m34a.Y, m34a.Z));
returnMat.SetRow(1, Vector3(m34b.X, m34b.Y, m34b.Z));
returnMat.SetRow(2, Vector3(m34c.X, m34c.Y, m34c.Z));
returnMat.SetRow(3, Vector3(m34d.X, m34d.Y, m34d.Z));
return returnMat;
}
1 change: 1 addition & 0 deletions mc2hook/mc2hook/age/vector/matrix44.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@ class Matrix44
void Transform3x3(const Vector3& vector, Vector3& out) const;
Vector3 Transform3x3(const Vector3& vector) const;
void FromMatrix34(Matrix34 const& m34);
Matrix34 ToMatrix34();
};
Loading