Face down
This commit is contained in:
parent
787786bfa4
commit
a009fd3749
32
terrain.c
32
terrain.c
@ -8,6 +8,7 @@
|
|||||||
#include "unigi/main.h"
|
#include "unigi/main.h"
|
||||||
|
|
||||||
// #include "keys.h"
|
// #include "keys.h"
|
||||||
|
// #define ECS_MAXENTITIES 30000
|
||||||
#include "terrain_ecstypes.h"
|
#include "terrain_ecstypes.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -29,21 +30,22 @@
|
|||||||
#define CHUNKSCALE 1.0 / CHUNKSIZE
|
#define CHUNKSCALE 1.0 / CHUNKSIZE
|
||||||
#define VIEWDISTANCE 10
|
#define VIEWDISTANCE 10
|
||||||
#define PLBOXEDGE (VIEWDISTANCE * 2 + 1)
|
#define PLBOXEDGE (VIEWDISTANCE * 2 + 1)
|
||||||
#define MAXCHUNKPERFRAME 100
|
#define MAXCHUNKPERFRAME 1
|
||||||
|
|
||||||
// These are initial values but there may be ways to change it
|
// These are initial values but there may be ways to change it
|
||||||
#define CAM_INITPITCH MPI_2
|
#define INIT_CAMPITCH MPI_2 * 1.6 // 1.575
|
||||||
#define INIT_NEARCLIP 0.01
|
#define INIT_NEARCLIP 0.01
|
||||||
#define INIT_FARCLIP 100.0
|
#define INIT_FARCLIP 100.0
|
||||||
#define INIT_FOV 90.0
|
#define INIT_FOV 90.0
|
||||||
#define INIT_DITHERSTART 10000
|
#define INIT_DITHERSTART 100
|
||||||
#define INIT_DITHEREND 10000
|
#define INIT_DITHEREND 100
|
||||||
#define INIT_LIGHTPITCH -MPI / 4.0
|
#define INIT_LIGHTPITCH -MPI / 4.0
|
||||||
#define INIT_LIGHTYAW 0
|
#define INIT_LIGHTYAW 0
|
||||||
#define INIT_MINLIGHT 0.2
|
#define INIT_MINLIGHT 0.2
|
||||||
|
|
||||||
|
#define INIT_PLAYERHEIGHT 1.5
|
||||||
#define INIT_PLAYERSPEED \
|
#define INIT_PLAYERSPEED \
|
||||||
{ .x = 0, .y = 0, .z = -0.5 }
|
{ .x = 0, .y = 0, .z = -1.5 }
|
||||||
|
|
||||||
// Some globals you can mess around with potentially
|
// Some globals you can mess around with potentially
|
||||||
int fps = 60;
|
int fps = 60;
|
||||||
@ -73,9 +75,9 @@ void gen_terrain(struct vec3i pos, haloo3d_obj *model) {
|
|||||||
// clang-format off
|
// clang-format off
|
||||||
// REMEMBER: NEGATIVE Z IS FORWARD
|
// REMEMBER: NEGATIVE Z IS FORWARD
|
||||||
int tl = haloo3d_obj_addvertex(model, (struct vec4){.x = 0, .y = 0, .z = 0, .w = 1});
|
int tl = haloo3d_obj_addvertex(model, (struct vec4){.x = 0, .y = 0, .z = 0, .w = 1});
|
||||||
int tr = haloo3d_obj_addvertex(model, (struct vec4){.x = CHUNKSIZE / 2.0, .y = 0, .z = 0, .w = 1});
|
int tr = haloo3d_obj_addvertex(model, (struct vec4){.x = CHUNKSIZE / 1.1, .y = 0, .z = 0, .w = 1});
|
||||||
int bl = haloo3d_obj_addvertex(model, (struct vec4){.x = 0, .y = 0, .z = CHUNKSIZE / 2.0, .w = 1});
|
int bl = haloo3d_obj_addvertex(model, (struct vec4){.x = 0, .y = 0, .z = CHUNKSIZE / 1.1, .w = 1});
|
||||||
int br = haloo3d_obj_addvertex(model, (struct vec4){.x = CHUNKSIZE / 2.0, .y = 0, .z = CHUNKSIZE / 2.0, .w = 1});
|
int br = haloo3d_obj_addvertex(model, (struct vec4){.x = CHUNKSIZE / 1.1, .y = 0, .z = CHUNKSIZE / 1.1, .w = 1});
|
||||||
// clang-format on
|
// clang-format on
|
||||||
haloo3d_facei face;
|
haloo3d_facei face;
|
||||||
fastface(face, seauv, bl, br, tl);
|
fastface(face, seauv, bl, br, tl);
|
||||||
@ -212,6 +214,7 @@ void sys_movement(ecs_placement *p, ecs_movement *m, tecs **ecs) {
|
|||||||
vec3_add(p->up.v, p->up.v, temp);
|
vec3_add(p->up.v, p->up.v, temp);
|
||||||
vec3_multiply_f(temp, m->pos.v, (*ecs)->delta_s);
|
vec3_multiply_f(temp, m->pos.v, (*ecs)->delta_s);
|
||||||
vec3_add(p->pos.v, p->pos.v, temp);
|
vec3_add(p->pos.v, p->pos.v, temp);
|
||||||
|
// vec3_multiply(p->pos.v, p->pos.v, p->pos.v);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform the entire rendering of an object
|
// Perform the entire rendering of an object
|
||||||
@ -374,10 +377,10 @@ void sys_placement_lock(ecs_placement_lock *lock, ecs_placement *pl) {
|
|||||||
ecs_eid setup_player(tecs *ecs, render_context *context) {
|
ecs_eid setup_player(tecs *ecs, render_context *context) {
|
||||||
ecs_eid playerid = tecs_newentity(ecs, 0);
|
ecs_eid playerid = tecs_newentity(ecs, 0);
|
||||||
ECS_SETCOMPONENT(ecs, playerid, ecs_placement){
|
ECS_SETCOMPONENT(ecs, playerid, ecs_placement){
|
||||||
.pos = {.x = 0, .y = 1, .z = 0}, .up = DEFAULTUP};
|
.pos = {.x = 0, .y = INIT_PLAYERHEIGHT, .z = 0}, .up = DEFAULTUP};
|
||||||
ECS_SETCOMPONENT(ecs, playerid, ecs_movement){.pos = INIT_PLAYERSPEED};
|
ECS_SETCOMPONENT(ecs, playerid, ecs_movement){.pos = INIT_PLAYERSPEED};
|
||||||
ECS_SETCOMPONENT(ecs, playerid, ecs_rotation){.yaw = 0,
|
ECS_SETCOMPONENT(ecs, playerid, ecs_rotation){.yaw = 0,
|
||||||
.pitch = CAM_INITPITCH};
|
.pitch = INIT_CAMPITCH};
|
||||||
ECS_SETCOMPONENT(ecs, playerid, ecs_rendercontext) context;
|
ECS_SETCOMPONENT(ecs, playerid, ecs_rendercontext) context;
|
||||||
ECS_SETCOMPONENT(ecs, playerid, ecs_input){};
|
ECS_SETCOMPONENT(ecs, playerid, ecs_input){};
|
||||||
return playerid;
|
return playerid;
|
||||||
@ -410,7 +413,9 @@ ecs_eid setup_sea(tecs *ecs, render_context *ctx, ecs_placement *playerpos,
|
|||||||
haloo3d_obj_addface(model, face);
|
haloo3d_obj_addface(model, face);
|
||||||
ECS_SETCOMPONENT(ecs, seaid, ecs_object){
|
ECS_SETCOMPONENT(ecs, seaid, ecs_object){
|
||||||
.texture = haloo3d_easystore_gettex(&ecs->storage, PALETTEKEY),
|
.texture = haloo3d_easystore_gettex(&ecs->storage, PALETTEKEY),
|
||||||
.scale = {.x = VIEWDISTANCE, .y = VIEWDISTANCE, .z = VIEWDISTANCE},
|
.scale = {.x = VIEWDISTANCE * 1.5,
|
||||||
|
.y = VIEWDISTANCE * 1.5,
|
||||||
|
.z = VIEWDISTANCE * 1.5},
|
||||||
.lighting = NULL,
|
.lighting = NULL,
|
||||||
.model = model,
|
.model = model,
|
||||||
.cullbackface = 1,
|
.cullbackface = 1,
|
||||||
@ -455,6 +460,9 @@ int main() { // int argc, char **argv) {
|
|||||||
context.nearclip = INIT_NEARCLIP;
|
context.nearclip = INIT_NEARCLIP;
|
||||||
context.farclip = INIT_FARCLIP;
|
context.farclip = INIT_FARCLIP;
|
||||||
context.fov = INIT_FOV;
|
context.fov = INIT_FOV;
|
||||||
|
haloo3d_trirender_init(&context.rendersettings);
|
||||||
|
context.rendersettings.ditherclose = INIT_DITHERSTART;
|
||||||
|
context.rendersettings.ditherfar = INIT_DITHEREND;
|
||||||
haloo3d_fb_init(&context.window, WIDTH, HEIGHT);
|
haloo3d_fb_init(&context.window, WIDTH, HEIGHT);
|
||||||
|
|
||||||
eprintf("Initialized screen buffers, context, and timers\n");
|
eprintf("Initialized screen buffers, context, and timers\n");
|
||||||
@ -491,9 +499,9 @@ int main() { // int argc, char **argv) {
|
|||||||
if (ecs.delta_s) {
|
if (ecs.delta_s) {
|
||||||
ECS_RUNSYSTEM1(&ecs, sys_playerinput, ecs_input);
|
ECS_RUNSYSTEM1(&ecs, sys_playerinput, ecs_input);
|
||||||
ECS_RUNSYSTEM2(&ecs, sys_rotation, ecs_placement, ecs_rotation);
|
ECS_RUNSYSTEM2(&ecs, sys_rotation, ecs_placement, ecs_rotation);
|
||||||
|
ECS_RUNSYSTEM3(&ecs, sys_movement, ecs_placement, ecs_movement, tecs);
|
||||||
ECS_RUNSYSTEM2(&ecs, sys_placement_lock, ecs_placement_lock,
|
ECS_RUNSYSTEM2(&ecs, sys_placement_lock, ecs_placement_lock,
|
||||||
ecs_placement);
|
ecs_placement);
|
||||||
ECS_RUNSYSTEM3(&ecs, sys_movement, ecs_placement, ecs_movement, tecs);
|
|
||||||
ECS_RUNSYSTEM3(&ecs, sys_rendercontext, ecs_rendercontext, ecs_placement,
|
ECS_RUNSYSTEM3(&ecs, sys_rendercontext, ecs_rendercontext, ecs_placement,
|
||||||
tecs);
|
tecs);
|
||||||
ECS_RUNSYSTEM3(&ecs, sys_playergarbage, ecs_playergarbage, ecs_object,
|
ECS_RUNSYSTEM3(&ecs, sys_playergarbage, ecs_playergarbage, ecs_object,
|
||||||
|
Loading…
Reference in New Issue
Block a user