Compare commits
3 Commits
f7a429cfbc
...
2e730baf33
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2e730baf33 | ||
![]() |
462412c31a | ||
![]() |
e4b5f8d361 |
@ -25,6 +25,9 @@ static int mdlloader(void *ud, struct ResManRes *res) {
|
|||||||
} header;
|
} header;
|
||||||
fread(&header, 4, 4, f);
|
fread(&header, 4, 4, f);
|
||||||
|
|
||||||
|
// ' ' or '1'
|
||||||
|
char version = ((char*) &header.magic)[3];
|
||||||
|
|
||||||
int colorsEnabled = header.flags & 1;
|
int colorsEnabled = header.flags & 1;
|
||||||
|
|
||||||
mat4 *invBind = _mm_malloc(sizeof(*invBind) * header.boneCount, 16);
|
mat4 *invBind = _mm_malloc(sizeof(*invBind) * header.boneCount, 16);
|
||||||
@ -83,8 +86,11 @@ static int mdlloader(void *ud, struct ResManRes *res) {
|
|||||||
fread(&meshes, sizeof(uint16_t), 1, f);
|
fread(&meshes, sizeof(uint16_t), 1, f);
|
||||||
|
|
||||||
for(uint32_t i = 0; i < meshes; i++) {
|
for(uint32_t i = 0; i < meshes; i++) {
|
||||||
uint16_t startnum[2];
|
uint32_t start = 0;
|
||||||
fread(startnum, sizeof(uint16_t), 2, f);
|
uint32_t number = 0;
|
||||||
|
|
||||||
|
fread(&start, version == ' ' ? sizeof(uint16_t) : sizeof(uint32_t), 1, f);
|
||||||
|
fread(&number, version == ' ' ? sizeof(uint16_t) : sizeof(uint32_t), 1, f);
|
||||||
|
|
||||||
char buf[256] = {};
|
char buf[256] = {};
|
||||||
for(int c = 0; c < sizeof(buf) - 1; c++) {
|
for(int c = 0; c < sizeof(buf) - 1; c++) {
|
||||||
@ -94,7 +100,7 @@ static int mdlloader(void *ud, struct ResManRes *res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
k3MdlAddMesh(mdl, resman_ref(RESMAN_MATERIAL, buf), startnum[0], startnum[1]);
|
k3MdlAddMesh(mdl, resman_ref(RESMAN_MATERIAL, buf), start, number);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(size_t i = 0; i < header.animCount; i++) {
|
for(size_t i = 0; i < header.animCount; i++) {
|
||||||
@ -178,7 +184,7 @@ static int streamloader(void *ud, struct ResManRes *res) {
|
|||||||
snprintf(namebuf, sizeof(namebuf), "assets/aud/%s", res->name);
|
snprintf(namebuf, sizeof(namebuf), "assets/aud/%s", res->name);
|
||||||
|
|
||||||
res->thing = k3MixSourceFile(namebuf);
|
res->thing = k3MixSourceFile(namebuf);
|
||||||
return 1;
|
return !!res->thing;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int refresh_texture(struct ResManRes *res) {
|
static int refresh_texture(struct ResManRes *res) {
|
||||||
|
12
src/luaapi.c
12
src/luaapi.c
@ -385,7 +385,9 @@ static int game_addentity(lua_State *L) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double LuaapiStartTime;
|
double LuaapiStartTime;
|
||||||
float LuaapiFov = 75;
|
float LuaapiFov = 75.0f;
|
||||||
|
float LuaapiNear = 0.01f;
|
||||||
|
float LuaapiFar = 80.0f;
|
||||||
|
|
||||||
static int gametriggersref;
|
static int gametriggersref;
|
||||||
static int luaapi_triggerfunc(size_t id, uint16_t ethis, uint16_t ethat, uint8_t event) {
|
static int luaapi_triggerfunc(size_t id, uint16_t ethis, uint16_t ethat, uint8_t event) {
|
||||||
@ -1276,6 +1278,10 @@ static int game_get(lua_State *L) {
|
|||||||
}
|
}
|
||||||
} else if(!strcmp(i, "fov")) {
|
} else if(!strcmp(i, "fov")) {
|
||||||
lua_pushnumber(L, LuaapiFov);
|
lua_pushnumber(L, LuaapiFov);
|
||||||
|
} else if(!strcmp(i, "near")) {
|
||||||
|
lua_pushnumber(L, LuaapiNear);
|
||||||
|
} else if(!strcmp(i, "far")) {
|
||||||
|
lua_pushnumber(L, LuaapiFar);
|
||||||
} else if(!strcmp(i, "rate")) {
|
} else if(!strcmp(i, "rate")) {
|
||||||
lua_pushinteger(L, GAME_TPS);
|
lua_pushinteger(L, GAME_TPS);
|
||||||
} else if(!strcmp(i, "camera")) {
|
} else if(!strcmp(i, "camera")) {
|
||||||
@ -1305,6 +1311,10 @@ static int game_set(lua_State *L) {
|
|||||||
Game.spectated = lua_isnil(L, 3) ? ENT_ID_INVALID : lua_tointeger(L, 3);
|
Game.spectated = lua_isnil(L, 3) ? ENT_ID_INVALID : lua_tointeger(L, 3);
|
||||||
} else if(!strcmp(i, "fov")) {
|
} else if(!strcmp(i, "fov")) {
|
||||||
LuaapiFov = lua_tonumber(L, 3);
|
LuaapiFov = lua_tonumber(L, 3);
|
||||||
|
} else if(!strcmp(i, "near")) {
|
||||||
|
LuaapiNear = lua_tonumber(L, 3);
|
||||||
|
} else if(!strcmp(i, "far")) {
|
||||||
|
LuaapiFar = lua_tonumber(L, 3);
|
||||||
} else if(!strcmp(i, "menu")) {
|
} else if(!strcmp(i, "menu")) {
|
||||||
struct menuitem *item = lua_touserdata(L, 3);
|
struct menuitem *item = lua_touserdata(L, 3);
|
||||||
UiActive = item ? item->ptr : NULL;
|
UiActive = item ? item->ptr : NULL;
|
||||||
|
@ -14,6 +14,8 @@ extern int LuaapiFirstPerson;
|
|||||||
|
|
||||||
extern double LuaapiStartTime;
|
extern double LuaapiStartTime;
|
||||||
extern float LuaapiFov;
|
extern float LuaapiFov;
|
||||||
|
extern float LuaapiNear;
|
||||||
|
extern float LuaapiFar;
|
||||||
|
|
||||||
extern struct k3Tex *LuaapiSkybox;
|
extern struct k3Tex *LuaapiSkybox;
|
||||||
extern vec4 LuaapiSkyboxRotation;
|
extern vec4 LuaapiSkyboxRotation;
|
||||||
|
@ -505,7 +505,7 @@ int main(int argc_, char **argv_) {
|
|||||||
glfwGetFramebufferSize(GameWnd, &width, &height);
|
glfwGetFramebufferSize(GameWnd, &width, &height);
|
||||||
|
|
||||||
mat4 proj;
|
mat4 proj;
|
||||||
glm_perspective(glm_rad(LuaapiFov), (float) width / height, 0.1f, 80.f, proj);
|
glm_perspective(glm_rad(LuaapiFov), (float) width / height, LuaapiNear, LuaapiFar, proj);
|
||||||
|
|
||||||
/* Third-person camera movement */
|
/* Third-person camera movement */
|
||||||
struct LocalRay camray = {};
|
struct LocalRay camray = {};
|
||||||
|
Loading…
Reference in New Issue
Block a user