struct Object
{
enum Type
{
Entity
};
Type m_type;
glm::mat4 m_projection;
glm::mat4 m_modelview;
glm::vec3 relativePos;
Object(Type t) : m_type(t), relativePos(0.0f) {
glGetFloatv(GL_PROJECTION_MATRIX, glm::value_ptr(m_projection));
glGetFloatv(GL_MODELVIEW_MATRIX, glm::value_ptr(m_modelview));
}
};
glm::vec3 lastTranslate = glm::vec3(0.0f);
void WINAPI hk_glScalef(GLfloat x, GLfloat y, GLfloat z)
{
if (x == 0.9375f and y == 0.9375f and z == 0.9375f) {
objects.emplace_back(Object::Entity);
objects.emplace_back().relativePos = lastTranslate;
}
fn_glScalef(x, y, z);
}
void WINAPI hk_glTranslatef(GLfloat x, GLfloat y, GLfloat z)
{
lastTranslate = glm::vec3(x, y, z);
fn_glTranslatef(x, y, z);
}