Shader linking i guess

This commit is contained in:
2026-04-12 14:52:33 +03:00
parent 79ceac1005
commit 457b455042
38 changed files with 12534 additions and 114 deletions

View File

@@ -18,27 +18,12 @@ void C_MOBAPlayer::Spawn()
void C_MOBAPlayer::Think( float fDelta )
{
<<<<<<< HEAD
C_MOBAPlayer *pEntity = (C_MOBAPlayer*)UTIL_GetLocalPlayer();
<<<<<<< HEAD
=======
=======
C_MOBAPlayer *pPlayerEntity = (C_MOBAPlayer*)UTIL_GetLocalPlayer();
<<<<<<< HEAD
>>>>>>> c251089 (different stuff in physics)
>>>>>>> a2652ed (merges)
m_vMovementVector.z = m_bIsForward - m_bIsBack;
m_vMovementVector.x = m_bIsLeft - m_bIsRight;
if (pEntity == this)
=======
m_vMovementVector.z = m_bIsBack - m_bIsForward;
m_vMovementVector.x = m_bIsRight - m_bIsLeft;
if (pPlayerEntity == this)
>>>>>>> 83e8198 (different stuff in physics)
{
Vector vCameraPos;
vCameraPos = GetAbsOrigin();

View File

@@ -104,7 +104,7 @@ void CFunnyMeshInstance::Frame()
glm_scale_make(m, v);
glm_mat4_mul(m_data.m_matTranslation, m, m_data.m_matTranslation);
m_data.m_uAlbedo = 1;
m_data.m_uAlbedo = 0;
/*
V_printf("AAAAA %f %f %f %f\n", m_data.m_matTranslation[0][0], m_data.m_matTranslation[0][1], m_data.m_matTranslation[0][2], m_data.m_matTranslation[0][3]);
V_printf("AAAAA %f %f %f %f\n", m_data.m_matTranslation[1][0], m_data.m_matTranslation[1][1], m_data.m_matTranslation[1][2], m_data.m_matTranslation[1][3]);
@@ -213,6 +213,10 @@ void CFunnyWorldRenderer::Init()
m_pRasterCommandList = g_pRenderContext->CreateCommandList();
m_pViewBuffer = g_pRenderContext->CreateConstantBuffer(sizeof(ViewBuffer_t));
m_pTextures = g_pRenderContext->CreateTextureArray();
IRayTracingShader *prt = g_pRenderContext->CreateRayShader("game/core/shaders/mesh_trace.shader_c");
prt->AddShader("error", "game/core/shaders/funny_error.shader_c");
prt->Build();
}
void CFunnyWorldRenderer::Tick( float fDelta )
@@ -228,13 +232,7 @@ void CFunnyWorldRenderer::Frame( float fDelta )
glm_mat4_identity(matCamera);
glm_mat4_identity(matCamera2);
glm_translate(matCamera2, m_vPos);
<<<<<<< HEAD
=======
<<<<<<< HEAD
=======
glm_mat4_inv(matCamera2, matCamera2);
>>>>>>> c251089 (different stuff in physics)
>>>>>>> a2652ed (merges)
glm_perspective(glm_rad(75), uWidth/(float)uHeight, 0.01, 10000, matCamera);
glm_mul(matCamera, matCamera2, matCamera);
m_pViewBufferData = (ViewBuffer_t*)m_pViewBuffer->Map();

23
game/server/light.cpp Normal file
View File

@@ -0,0 +1,23 @@
#include "light.h"
BEGIN_DATADESC(CBaseLight)
DEFINE_KEYFIELD(m_vColor, FIELD_COLOR4, "color")
DEFINE_KEYFIELD(m_fBrightness, FIELD_FLOAT, "brightness")
DEFINE_KEYFIELD(m_fRadius, FIELD_FLOAT, "radius")
DEFINE_KEYFIELD(m_eLightFlags, FIELD_INTEGER, "light_flags")
DEFINE_KEYFIELD(m_bIsEnabled, FIELD_BOOLEAN, "enabled")
END_DATADESC()
IMPLEMENT_SEND_DT(CBaseLight)
NetPropColor4(m_vColor),
NetPropFloat(m_fBrightness),
NetPropFloat(m_fRadius),
NetPropInt(m_eLightFlags),
NetPropBool(m_bIsEnabled),
END_SEND_DT()
IMPLEMENT_EMPTY_RECV_DT(CBaseLight)
LINK_ENTITY_TO_CLASS(light_point, CPointLight);

27
game/server/light.h Normal file
View File

@@ -0,0 +1,27 @@
#ifndef LIGHT_H
#define LIGHT_H
#include "pointentity.h"
#include "../shared/light.h"
class CBaseLight: public CPointEntity
{
public:
DECLARE_CLASS(CBaseLight, CPointEntity)
DECLARE_DATADESC()
DECLARE_SERVERCLASS()
ColorAlpha m_vColor;
float m_fBrightness;
float m_fRadius;
int m_eLightFlags;
bool m_bIsEnabled;
};
class CPointLight: public CBaseLight
{
public:
DECLARE_CLASS(CPointLight, CBaseLight);
};
#endif

View File

@@ -5,7 +5,8 @@
CMOBAPlayer::CMOBAPlayer()
{
m_hCuboid = g_pPhysics->CreateBall({1});
m_hCuboid = g_pPhysics->CreateCube({1,1,1});
}
CMOBAPlayer::~CMOBAPlayer()
@@ -16,25 +17,16 @@ CMOBAPlayer::~CMOBAPlayer()
void CMOBAPlayer::Spawn()
{
CBaseEntity::Spawn();
<<<<<<< HEAD
=======
<<<<<<< HEAD
>>>>>>> a2652ed (merges)
SetPhysics(k_EPhysics_Static);
SetModel("game/core/models/sphere.fmdl");
SetScale(1);
SetAbsOrigin({0,-14.5, 0});
<<<<<<< HEAD
=======
=======
SetModel("game/core/models/sphere.fmdl");
SetScale(1);
SetAbsOrigin({0,-11.5, 0});
>>>>>>> c251089 (different stuff in physics)
>>>>>>> a2652ed (merges)
SetThink(Think);
};
bool CMOBAPlayer::CheckMask( HCollider hCollider )
{
return true;
};
void CMOBAPlayer::Think( float fDelta )
{
BaseClass::Think(fDelta);
@@ -47,18 +39,11 @@ void CMOBAPlayer::Think( float fDelta )
vPosition.x += m_vMovementVector.x*fDelta*5;
vPosition.z += m_vMovementVector.z*fDelta*5;
<<<<<<< HEAD
SetAbsOrigin(vPosition);
<<<<<<< HEAD
=======
=======
CastResult_t result = g_pPhysicsWorld->ShapeCast(m_hCuboid, {0,0,0,1}, vPosition, {vPosition.x, vPosition.y, -100});
CastResult_t result = g_pPhysicsWorld->ShapeCast(m_hCuboid, {0,0,0,1}, vPosition, {vPosition.x, vPosition.y, -100}, CheckMask);
if (result.m_bIsHit)
SetAbsOrigin(result.m_vCollisionPoint);
else
SetAbsOrigin(vPosition);
>>>>>>> c251089 (different stuff in physics)
>>>>>>> a2652ed (merges)
};
LINK_ENTITY_TO_CLASS(player, CMOBAPlayer)

View File

@@ -3,10 +3,10 @@
#include "physicsprop.h"
class CMOBAPlayer: public CPhysicsProp
class CMOBAPlayer: public CBaseModelEntity
{
public:
DECLARE_CLASS(CMOBAPlayer, CPhysicsProp);
DECLARE_CLASS(CMOBAPlayer, CBaseModelEntity);
DECLARE_DATADESC();
DECLARE_SERVERCLASS()
@@ -14,6 +14,8 @@ public:
virtual ~CMOBAPlayer();
virtual void Spawn( void ) override;
void Think( float fDelta );
static bool CheckMask( HCollider hCollider );
private:
Vector m_vMovementVector = {};

View File

@@ -1 +1,2 @@
#include "pointentity.h"

View File

@@ -21,12 +21,14 @@ enum fieldtype_t {
FIELD_FLOAT4,
FIELD_QUATERNION,
FIELD_QUATERNION_QANGLE,
FIELD_COLOR255,
FIELD_COLOR1,
FIELD_COLOR3,
FIELD_COLOR4,
FIELD_INTEGER,
FIELD_BOOLEAN,
FIELD_MAT4x4,
FIELD_FLAGS,
FIELD_MATERIAL,
FIELD_TEXTURE,
FIELD_MODEL,

10
game/shared/light.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef SHARED_LIGHT_H
#define SHARED_LIGHT_H
enum ELightFlags
{
k_ELight_Shadows = 0x1,
k_ELight_Radiance = 0x2,
};
#endif

View File

@@ -26,7 +26,8 @@ struct netmap_t
uint32_t m_uFieldCount;
};
#define NetPropInt(name) { #name, FIELD_INT, _class_offsetof(ThisClass, name), sizeof(name)}
#define NetPropInt(name) { #name, FIELD_INTEGER, _class_offsetof(ThisClass, name), sizeof(name)}
#define NetPropBool(name) { #name, FIELD_BOOLEAN, _class_offsetof(ThisClass, name), sizeof(name)}
#define NetPropString(name) { #name, FIELD_STRING, _class_offsetof(ThisClass, name), sizeof(name)}
#define NetPropFloat(name) { #name, FIELD_FLOAT, _class_offsetof(ThisClass, name), sizeof(name)}
#define NetPropFloat3(name) \
@@ -37,7 +38,12 @@ struct netmap_t
NetPropFloat(name.x), \
NetPropFloat(name.y), \
NetPropFloat(name.z), \
NetPropFloat(name.w) \
NetPropFloat(name.w)
#define NetPropColor4(name) \
NetPropFloat(name.r), \
NetPropFloat(name.g), \
NetPropFloat(name.b), \
NetPropFloat(name.a)
#define __DECLARE_NETCLASS_NOBASE() \
netmap_t *GetBaseSendMap(); \