From 4224594ee40172e65631f30e81f8d01424bb2d9a Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sat, 19 Nov 2022 23:13:57 +0000 Subject: [PATCH] Rename structs to more sane things --- source/engine/2dphysics.c | 22 +++++++-------- source/engine/2dphysics.h | 24 ++++++++-------- source/engine/datastream.c | 2 +- source/engine/datastream.h | 4 +-- source/engine/debugdraw.c | 6 ++-- source/engine/editor.c | 4 +-- source/engine/editor.h | 4 +-- source/engine/engine.c | 2 -- source/engine/font.c | 6 ++-- source/engine/font.h | 6 ++-- source/engine/gameobject.c | 55 +++++++++++++++++++++--------------- source/engine/gameobject.h | 36 +++++++++++------------ source/engine/level.c | 4 +-- source/engine/light.c | 10 +++---- source/engine/light.h | 12 ++++---- source/engine/mesh.c | 10 +++---- source/engine/mesh.h | 12 ++++---- source/engine/model.c | 22 +++++++-------- source/engine/model.h | 18 ++++++------ source/engine/openglrender.c | 24 ++++++++-------- source/engine/openglrender.h | 6 ++-- source/engine/registry.c | 4 +-- source/engine/registry.h | 22 +++++++-------- source/engine/shader.c | 30 ++++++++++---------- source/engine/shader.h | 28 +++++++++--------- source/engine/skybox.h | 2 +- source/engine/sprite.c | 18 ++++++++---- source/engine/sprite.h | 8 +++--- source/engine/static_actor.c | 6 ++-- source/engine/static_actor.h | 10 +++---- 30 files changed, 216 insertions(+), 201 deletions(-) diff --git a/source/engine/2dphysics.c b/source/engine/2dphysics.c index 63d02f9d..d157925a 100644 --- a/source/engine/2dphysics.c +++ b/source/engine/2dphysics.c @@ -36,7 +36,7 @@ void phys2d_shape_apply(struct phys2d_shape *shape) cpShapeSetElasticity(shape->shape, shape->go->e); } -void init_phys2dshape(struct phys2d_shape *shape, struct mGameObject *go) +void init_phys2dshape(struct phys2d_shape *shape, struct gameobject *go) { shape->go = go; phys2d_shape_apply(shape); @@ -47,7 +47,7 @@ void phys2d_shape_del(struct phys2d_shape *shape) cpSpaceRemoveShape(space, shape->shape); } -struct phys2d_circle *Make2DCircle(struct mGameObject *go) +struct phys2d_circle *Make2DCircle(struct gameobject *go) { struct phys2d_circle *new = malloc(sizeof(struct phys2d_circle)); @@ -59,7 +59,7 @@ struct phys2d_circle *Make2DCircle(struct mGameObject *go) return new; } -void phys2d_circleinit(struct phys2d_circle *circle, struct mGameObject *go) +void phys2d_circleinit(struct phys2d_circle *circle, struct gameobject *go) { circle->shape.shape = cpSpaceAddShape(space, cpCircleShapeNew(go->body, circle->radius, cpvzero)); init_phys2dshape(&circle->shape, go); @@ -87,7 +87,7 @@ void phys2d_dbgdrawcircle(struct phys2d_circle *circle) draw_circle(p.x + (d * cos(a)), p.y + (d * sin(a)), cpCircleShapeGetRadius(circle->shape.shape), 1); } -struct phys2d_segment *Make2DSegment(struct mGameObject *go) +struct phys2d_segment *Make2DSegment(struct gameobject *go) { struct phys2d_segment *new = malloc(sizeof(struct phys2d_segment)); @@ -101,7 +101,7 @@ struct phys2d_segment *Make2DSegment(struct mGameObject *go) return new; } -void phys2d_seginit(struct phys2d_segment *seg, struct mGameObject *go) +void phys2d_seginit(struct phys2d_segment *seg, struct gameobject *go) { seg->shape.shape = cpSpaceAddShape(space, cpSegmentShapeNew(go->body, cpvzero, cpvzero, seg->thickness)); init_phys2dshape(&seg->shape, go); @@ -120,7 +120,7 @@ void segment_gui(struct phys2d_segment *seg) phys2d_applyseg(seg); } -struct phys2d_box *Make2DBox(struct mGameObject *go) +struct phys2d_box *Make2DBox(struct gameobject *go) { struct phys2d_box *new = malloc(sizeof(struct phys2d_box)); @@ -135,7 +135,7 @@ struct phys2d_box *Make2DBox(struct mGameObject *go) return new; } -void phys2d_boxinit(struct phys2d_box *box, struct mGameObject *go) +void phys2d_boxinit(struct phys2d_box *box, struct gameobject *go) { box->shape.shape = cpSpaceAddShape(space, @@ -159,7 +159,7 @@ void box_gui(struct phys2d_box *box) } -struct phys2d_poly *Make2DPoly(struct mGameObject *go) +struct phys2d_poly *Make2DPoly(struct gameobject *go) { struct phys2d_poly *new = malloc(sizeof(struct phys2d_poly)); @@ -172,7 +172,7 @@ struct phys2d_poly *Make2DPoly(struct mGameObject *go) return new; } -void phys2d_polyinit(struct phys2d_poly *poly, struct mGameObject *go) +void phys2d_polyinit(struct phys2d_poly *poly, struct gameobject *go) { cpTransform T = { 0 }; poly->shape.shape = @@ -211,7 +211,7 @@ void poly_gui(struct phys2d_poly *poly) phys2d_applypoly(poly); } -struct phys2d_edge *Make2DEdge(struct mGameObject *go) +struct phys2d_edge *Make2DEdge(struct gameobject *go) { struct phys2d_edge *new = malloc(sizeof(struct phys2d_edge)); @@ -225,7 +225,7 @@ struct phys2d_edge *Make2DEdge(struct mGameObject *go) return new; } -void phys2d_edgeinit(struct phys2d_edge *edge, struct mGameObject *go) +void phys2d_edgeinit(struct phys2d_edge *edge, struct gameobject *go) { edge->shapes[0] = cpSpaceAddShape(space, diff --git a/source/engine/2dphysics.h b/source/engine/2dphysics.h index 8d0d676c..89277a8c 100644 --- a/source/engine/2dphysics.h +++ b/source/engine/2dphysics.h @@ -4,7 +4,7 @@ #include -struct mGameObject; +struct gameobject; extern cpBody *ballBody; extern float phys2d_gravity; @@ -13,7 +13,7 @@ extern cpSpace *space; struct phys2d_shape { cpShape *shape; - struct mGameObject *go; + struct gameobject *go; }; struct phys2d_circle { @@ -52,37 +52,37 @@ struct phys2d_poly { struct phys2d_shape shape; }; -struct phys2d_circle *Make2DCircle(struct mGameObject *go); -void phys2d_circleinit(struct phys2d_circle *circle, struct mGameObject *go); +struct phys2d_circle *Make2DCircle(struct gameobject *go); +void phys2d_circleinit(struct phys2d_circle *circle, struct gameobject *go); void phys2d_circledel(struct phys2d_circle *c); void phys2d_applycircle(struct phys2d_circle *circle); void phys2d_dbgdrawcircle(struct phys2d_circle *circle); void circle_gui(struct phys2d_circle *circle); -struct phys2d_segment *Make2DSegment(struct mGameObject *go); -void phys2d_seginit(struct phys2d_segment *seg, struct mGameObject *go); +struct phys2d_segment *Make2DSegment(struct gameobject *go); +void phys2d_seginit(struct phys2d_segment *seg, struct gameobject *go); void phys2d_segdel(struct phys2d_segment *seg); void phys2d_applyseg(struct phys2d_segment *seg); void phys2d_dbgdrawseg(struct phys2d_segment *seg); void segment_gui(struct phys2d_segment *seg); -struct phys2d_box *Make2DBox(struct mGameObject *go); -void phys2d_boxinit(struct phys2d_box *box, struct mGameObject *go); +struct phys2d_box *Make2DBox(struct gameobject *go); +void phys2d_boxinit(struct phys2d_box *box, struct gameobject *go); void phys2d_boxdel(struct phys2d_box *box); void phys2d_applybox(struct phys2d_box *box); void phys2d_dbgdrawbox(struct phys2d_box *box); void box_gui(struct phys2d_box *box); -struct phys2d_poly *Make2DPoly(struct mGameObject *go); -void phys2d_polyinit(struct phys2d_poly *poly, struct mGameObject *go); +struct phys2d_poly *Make2DPoly(struct gameobject *go); +void phys2d_polyinit(struct phys2d_poly *poly, struct gameobject *go); void phys2d_polydel(struct phys2d_poly *poly); void phys2d_applypoly(struct phys2d_poly *poly); void phys2d_dbgdrawpoly(struct phys2d_poly *poly); void phys2d_polyaddvert(struct phys2d_poly *poly); void poly_gui(struct phys2d_poly *poly); -struct phys2d_edge *Make2DEdge(struct mGameObject *go); -void phys2d_edgeinit(struct phys2d_edge *edge, struct mGameObject *go); +struct phys2d_edge *Make2DEdge(struct gameobject *go); +void phys2d_edgeinit(struct phys2d_edge *edge, struct gameobject *go); void phys2d_edgedel(struct phys2d_edge *edge); void phys2d_applyedge(struct phys2d_edge *edge); void phys2d_edgeshapeapply(struct phys2d_shape *mshape, cpShape * shape); diff --git a/source/engine/datastream.c b/source/engine/datastream.c index 65fd8130..ee8bef6b 100644 --- a/source/engine/datastream.c +++ b/source/engine/datastream.c @@ -13,7 +13,7 @@ #include "limits.h" #include "iir.h" -struct mShader *vid_shader; +struct shader *vid_shader; static void ds_update_texture(uint32_t unit, uint32_t texture, plm_plane_t * plane) { diff --git a/source/engine/datastream.h b/source/engine/datastream.h index 30d864ca..e66f415a 100644 --- a/source/engine/datastream.h +++ b/source/engine/datastream.h @@ -8,7 +8,7 @@ struct soundstream; struct datastream { plm_t *plm; - struct mShader *shader; + struct shader *shader; double last_time; int playing; int audio_device; @@ -20,7 +20,7 @@ struct datastream { struct Texture; -extern struct mShader *vid_shader; +extern struct shader *vid_shader; struct datastream *MakeDatastream(); void ds_openvideo(struct datastream *ds, const char *path, const char *adriver); diff --git a/source/engine/debugdraw.c b/source/engine/debugdraw.c index 608109ba..2b6f51ae 100644 --- a/source/engine/debugdraw.c +++ b/source/engine/debugdraw.c @@ -6,15 +6,15 @@ static uint32_t circleVBO; static uint32_t circleVAO; -static struct mShader *circleShader; +static struct shader *circleShader; static uint32_t gridVBO; static uint32_t gridVAO; -static struct mShader *gridShader; +static struct shader *gridShader; static uint32_t rectVBO; static uint32_t rectVAO; -static struct mShader *rectShader; +static struct shader *rectShader; void debugdraw_init() { diff --git a/source/engine/editor.c b/source/engine/editor.c index 88ebee5e..cf624c1c 100644 --- a/source/engine/editor.c +++ b/source/engine/editor.c @@ -974,10 +974,10 @@ void editor_asset_gui(struct fileasset *asset) { void editor_makenewobject() {} -int obj_gui_hierarchy(struct mGameObject *selected) { +int obj_gui_hierarchy(struct gameobject *selected) { for (int i = 0; i < arrlen(gameobjects); i++) { - struct mGameObject *go = &gameobjects[i]; + struct gameobject *go = &gameobjects[i]; if (nk_select_label(ctx, go->editor.mname, NK_TEXT_LEFT, go == selected)) { if (go != selected) diff --git a/source/engine/editor.h b/source/engine/editor.h index ea31a9e4..f2c9212a 100644 --- a/source/engine/editor.h +++ b/source/engine/editor.h @@ -44,7 +44,7 @@ struct editorVars { nk_flags asset_srch; }; -struct mGameObject; +struct gameobject; extern int show_desktop; @@ -102,7 +102,7 @@ void game_pause(); void get_levels(); -int obj_gui_hierarchy(struct mGameObject *selected); +int obj_gui_hierarchy(struct gameobject *selected); void sprite_gui(struct sprite *sprite); diff --git a/source/engine/engine.c b/source/engine/engine.c index 83ee864d..6cbc3170 100644 --- a/source/engine/engine.c +++ b/source/engine/engine.c @@ -13,8 +13,6 @@ #define PL_MPEG_IMPLEMENTATION #include -#define STB_ - #ifdef EDITOR #include "editor.h" #endif diff --git a/source/engine/font.c b/source/engine/font.c index ff2b36f8..49bdb1a8 100644 --- a/source/engine/font.c +++ b/source/engine/font.c @@ -19,9 +19,9 @@ unsigned char ttf_buffer[1<<25]; unsigned char temp_bitmap[512 * 512]; struct sFont *font; -static struct mShader *shader; +static struct shader *shader; -void font_init(struct mShader *textshader) { +void font_init(struct shader *textshader) { shader = textshader; shader_use(shader); @@ -108,7 +108,7 @@ struct sFont *MakeFont(const char *fontfile, int height) return newfont; } -void sdrawCharacter(struct Character c, mfloat_t cursor[2], float scale, struct mShader *shader, float color[3]) +void sdrawCharacter(struct Character c, mfloat_t cursor[2], float scale, struct shader *shader, float color[3]) { float w = c.Size[0] * scale; float h = c.Size[1] * scale; diff --git a/source/engine/font.h b/source/engine/font.h index 671bc467..6eac02b9 100644 --- a/source/engine/font.h +++ b/source/engine/font.h @@ -3,7 +3,7 @@ #include "mathc.h" -struct mShader; +struct shader; struct window; /// Holds all state information relevant to a character as loaded using FreeType @@ -22,10 +22,10 @@ struct sFont { -void font_init(struct mShader *s); +void font_init(struct shader *s); void font_frame(struct window *w); struct sFont *MakeFont(const char *fontfile, int height); -void sdrawCharacter(struct Character c, mfloat_t cursor[2], float scale, struct mShader *shader, float color[3]); +void sdrawCharacter(struct Character c, mfloat_t cursor[2], float scale, struct shader *shader, float color[3]); void text_settype(struct sFont *font); void renderText(const char *text, mfloat_t pos[2], float scale, mfloat_t color[3], float lw); diff --git a/source/engine/gameobject.c b/source/engine/gameobject.c index 52e0e23c..2634b64a 100644 --- a/source/engine/gameobject.c +++ b/source/engine/gameobject.c @@ -14,17 +14,17 @@ #include "stb_ds.h" -struct mGameObject *gameobjects = NULL; +struct gameobject *gameobjects = NULL; const int nameBuf[MAXNAME] = { 0 }; const int prefabNameBuf[MAXNAME] = { 0 }; -struct mGameObject *get_gameobject_from_id(int id) +struct gameobject *get_gameobject_from_id(int id) { return &gameobjects[id]; } -static void gameobject_setpickcolor(struct mGameObject *go) +static void gameobject_setpickcolor(struct gameobject *go) { float r = ((go->editor.id & 0x000000FF) >> 0) / 255.f; float g = ((go->editor.id & 0x0000FF00) >> 8) / 255.f; @@ -35,10 +35,10 @@ static void gameobject_setpickcolor(struct mGameObject *go) go->editor.color[2] = b; } -struct mGameObject *MakeGameobject() +struct gameobject *MakeGameobject() { YughInfo("Making new gameobject"); - struct mGameObject go = { + struct gameobject go = { .editor.id = arrlen(gameobjects), .transform.scale = 1.f, .scale = 1.f, @@ -55,7 +55,7 @@ struct mGameObject *MakeGameobject() return &arrlast(gameobjects); } -void gameobject_addcomponent(struct mGameObject *go, struct component *c) +void gameobject_addcomponent(struct gameobject *go, struct component *c) { arrput(go->components, *c); struct component *newc = &arrlast(go->components); @@ -65,23 +65,25 @@ void gameobject_addcomponent(struct mGameObject *go, struct component *c) void gameobject_delete(int id) { - struct mGameObject *go = &gameobjects[id]; + YughInfo("Deleting gameobject with id %d.", id); + struct gameobject *go = &gameobjects[id]; for (int i = 0; i < arrlen(go->components); i++) { - free(go->components[i].data); + go->components[i].delete(go->components[i].data); + arrdel(go->components, i); } - arrfree(go->components); + arrdelswap(gameobjects, id); } -void gameobject_delcomponent(struct mGameObject *go, int n) +void gameobject_delcomponent(struct gameobject *go, int n) { go->components[n].delete(go->components[n].data); arrdel(go->components, n); } -void setup_model_transform(struct mTransform *t, struct mShader *s, float scale) +void setup_model_transform(struct mTransform *t, struct shader *s, float scale) { mfloat_t modelT[16] = { 0.f }; mfloat_t matbuff[16] = { 0.f }; @@ -93,7 +95,7 @@ void setup_model_transform(struct mTransform *t, struct mShader *s, float scale) } -void gameobject_save(struct mGameObject *go, FILE * file) +void gameobject_save(struct gameobject *go, FILE * file) { fwrite(go, sizeof(*go), 1, file); @@ -118,7 +120,7 @@ void gameobject_makefromprefab(char *path) return; } - struct mGameObject *new = MakeGameobject(); + struct gameobject *new = MakeGameobject(); fread(new, sizeof(*new), 1, fprefab); new->components = NULL; @@ -127,21 +129,28 @@ void gameobject_makefromprefab(char *path) fclose(fprefab); } -void gameobject_init(struct mGameObject *go, FILE * fprefab) +void gameobject_init(struct gameobject *go, FILE * fprefab) { go->body = cpSpaceAddBody(space, cpBodyNew(go->mass, 1.f)); int comp_n; fread(&comp_n, sizeof(int), 1, fprefab); - arrsetlen(go->components, comp_n); + arrfree(go->components); int n; for (int i = 0; i < comp_n; i++) { + /* fread(&n, sizeof(int), 1, fprefab); go->components[i] = components[n]; struct component *newc = &go->components[i]; newc->go = go; newc->data = calloc(1, newc->datasize); + */ + fread(&n, sizeof(int), 1, fprefab); + arrput(go->components, components[n]); + struct component *newc = &arrlast(go->components); + newc->go = go; + newc->data = newc->make(newc->go); if (newc->io == NULL) fread(newc->data, newc->datasize, 1, fprefab); @@ -152,7 +161,7 @@ void gameobject_init(struct mGameObject *go, FILE * fprefab) } } -void gameobject_saveprefab(struct mGameObject *go) +void gameobject_saveprefab(struct gameobject *go) { char prefabfname[60] = { '\0' }; strncat(prefabfname, go->editor.prefabName, MAXNAME); @@ -171,7 +180,7 @@ void gameobject_saveprefab(struct mGameObject *go) void gameobject_syncprefabs(char *revertPath) { /* - struct mGameObject **go = objects; + struct gameobject **go = objects; int i = 0; while(i != nobjects) { if ((*go)->editor.curPrefabPath && !strcmp((*go)->editor.curPrefabPath, revertPath)) { ; }//objectRevertPrefab(go); //TODO: revertprefab @@ -179,12 +188,12 @@ void gameobject_syncprefabs(char *revertPath) */ } -void gameobject_revertprefab(struct mGameObject *go) +void gameobject_revertprefab(struct gameobject *go) { } -void toggleprefab(struct mGameObject *go) +void toggleprefab(struct gameobject *go) { go->editor.prefabSync = !go->editor.prefabSync; @@ -196,13 +205,13 @@ void toggleprefab(struct mGameObject *go) } } -void gameobject_update(struct mGameObject *go) +void gameobject_update(struct gameobject *go) { if (go->script) script_run(go->script); } -void gameobject_move(struct mGameObject *go, float xs, float ys) +void gameobject_move(struct gameobject *go, float xs, float ys) { cpVect p = cpBodyGetPosition(go->body); p.x += xs * deltaT; @@ -210,7 +219,7 @@ void gameobject_move(struct mGameObject *go, float xs, float ys) cpBodySetPosition(go->body, p); } -void gameobject_rotate(struct mGameObject *go, float as) +void gameobject_rotate(struct gameobject *go, float as) { cpFloat a = cpBodyGetAngle(go->body); a += as * deltaT; @@ -223,7 +232,7 @@ void update_gameobjects() { } -void object_gui(struct mGameObject *go) +void object_gui(struct gameobject *go) { float temp_pos[2]; temp_pos[0] = cpBodyGetPosition(go->body).x; diff --git a/source/engine/gameobject.h b/source/engine/gameobject.h index 42fc4a19..4a1b21e1 100644 --- a/source/engine/gameobject.h +++ b/source/engine/gameobject.h @@ -8,7 +8,7 @@ #include #include -struct mShader; +struct shader; struct sprite; struct component; @@ -23,7 +23,7 @@ struct editor { char rootPrefabName[MAXNAME]; }; -struct mGameObject { +struct gameobject { struct mTransform transform; struct editor editor; cpBodyType bodytype; @@ -36,35 +36,35 @@ struct mGameObject { char *script; }; -extern struct mGameObject *gameobjects; +extern struct gameobject *gameobjects; -struct mGameObject *MakeGameobject(); +struct gameobject *MakeGameobject(); void init_gameobjects(); void gameobject_delete(int id); void clear_gameobjects(); int number_of_gameobjects(); void set_n_gameobjects(int n); -void setup_model_transform(struct mTransform *t, struct mShader *s, float scale); -void toggleprefab(struct mGameObject *go); -struct mGameObject *get_gameobject_from_id(int id); -void gameobject_save(struct mGameObject *go, FILE * file); -void gameobject_addcomponent(struct mGameObject *go, struct component *c); -void gameobject_delcomponent(struct mGameObject *go, int n); -void gameobject_loadcomponent(struct mGameObject *go, int id); +void setup_model_transform(struct mTransform *t, struct shader *s, float scale); +void toggleprefab(struct gameobject *go); +struct gameobject *get_gameobject_from_id(int id); +void gameobject_save(struct gameobject *go, FILE * file); +void gameobject_addcomponent(struct gameobject *go, struct component *c); +void gameobject_delcomponent(struct gameobject *go, int n); +void gameobject_loadcomponent(struct gameobject *go, int id); -void gameobject_saveprefab(struct mGameObject *go); +void gameobject_saveprefab(struct gameobject *go); void gameobject_makefromprefab(char *path); void gameobject_syncprefabs(char *revertPath); -void gameobject_revertprefab(struct mGameObject *go); +void gameobject_revertprefab(struct gameobject *go); -void gameobject_init(struct mGameObject *go, FILE * fprefab); +void gameobject_init(struct gameobject *go, FILE * fprefab); -void gameobject_update(struct mGameObject *go); +void gameobject_update(struct gameobject *go); void update_gameobjects(); -void gameobject_move(struct mGameObject *go, float xs, float ys); -void gameobject_rotate(struct mGameObject *go, float as); +void gameobject_move(struct gameobject *go, float xs, float ys); +void gameobject_rotate(struct gameobject *go, float as); -void object_gui(struct mGameObject *go); +void object_gui(struct gameobject *go); #endif diff --git a/source/engine/level.c b/source/engine/level.c index d9299fe0..aa19955c 100644 --- a/source/engine/level.c +++ b/source/engine/level.c @@ -36,8 +36,8 @@ void load_level(char name[MAXNAME]) arraddn(gameobjects, objs); for (int i = 0; i < objs; i++) { - struct mGameObject *go = &gameobjects[i]; - fread(go, sizeof(struct mGameObject), 1, lfile); + struct gameobject *go = &gameobjects[i]; + fread(go, sizeof(struct gameobject), 1, lfile); go->components = NULL; gameobject_init(go, lfile); } diff --git a/source/engine/light.c b/source/engine/light.c index c4859512..4a2755fc 100644 --- a/source/engine/light.c +++ b/source/engine/light.c @@ -43,7 +43,7 @@ struct mDirectionalLight *MakeDLight() } void dlight_prepshader(struct mDirectionalLight *light, - struct mShader *shader) + struct shader *shader) { mfloat_t fwd[3] = { 0.f }; trans_forward(fwd, &light->light.obj.transform); @@ -79,14 +79,14 @@ static void prepstring(char *buffer, char *prepend, const char *append) snprintf(buffer, 100, "%s%s", prepend, append); } -void pointlights_prepshader(struct mShader *shader) +void pointlights_prepshader(struct shader *shader) { for (int i = 0; i < numLights; i++) pointlight_prepshader(pointLights[i], shader, i); } void pointlight_prepshader(struct mPointLight *light, - struct mShader *shader, int num) + struct shader *shader, int num) { shader_use(shader); char prepend[100] = { '\0' }; @@ -132,13 +132,13 @@ struct mSpotLight *MakeSpotlight() -void spotlights_prepshader(struct mShader *shader) +void spotlights_prepshader(struct shader *shader) { for (int i = 0; i < numSpots; i++) spotlight_prepshader(spotLights[i], shader, i); } -void spotlight_prepshader(struct mSpotLight *light, struct mShader *shader, +void spotlight_prepshader(struct mSpotLight *light, struct shader *shader, int num) { mfloat_t fwd[3] = { 0.f }; diff --git a/source/engine/light.h b/source/engine/light.h index c9db8a19..c6ceba8c 100644 --- a/source/engine/light.h +++ b/source/engine/light.h @@ -4,7 +4,7 @@ #include struct mLight { - struct mGameObject *go; + struct gameobject *go; uint8_t color[3]; float strength; int dynamic; @@ -21,8 +21,8 @@ struct mPointLight { struct mPointLight *MakePointlight(); void pointlight_prepshader(struct mPointLight *light, - struct mShader *shader, int num); -void pointlights_prepshader(struct mShader *shader); + struct shader *shader, int num); +void pointlights_prepshader(struct shader *shader); struct mSpotLight { @@ -38,9 +38,9 @@ struct mSpotLight { struct mSpotLight *MakeSpotlight(); void spotlight_gui(struct mSpotLight *light); -void spotlight_prepshader(struct mSpotLight *light, struct mShader *shader, +void spotlight_prepshader(struct mSpotLight *light, struct shader *shader, int num); -void spotlights_prepshader(struct mShader *shader); +void spotlights_prepshader(struct shader *shader); @@ -49,7 +49,7 @@ struct mDirectionalLight { }; void dlight_prepshader(struct mDirectionalLight *light, - struct mShader *shader); + struct shader *shader); struct mDirectionalLight *MakeDLight(); extern struct mDirectionalLight *dLight; diff --git a/source/engine/mesh.c b/source/engine/mesh.c index 5c434a0c..7b52d749 100644 --- a/source/engine/mesh.c +++ b/source/engine/mesh.c @@ -7,7 +7,7 @@ #include #include -void DrawMesh(struct mMesh *mesh, struct mShader *shader) +void DrawMesh(struct mesh *mesh, struct shader *shader) { // bind appropriate textures uint32_t diffuseNr = 1; @@ -49,17 +49,17 @@ void DrawMesh(struct mMesh *mesh, struct mShader *shader) } -void DrawMeshAgain(struct mMesh *mesh) +void DrawMeshAgain(struct mesh *mesh) { glDrawElements(GL_TRIANGLES, (mesh->ie - mesh->indices), GL_UNSIGNED_INT, 0); } -struct mMesh *MakeMesh(struct Vertex *vertices, struct Vertex *ve, +struct mesh *MakeMesh(struct Vertex *vertices, struct Vertex *ve, uint32_t * indices, uint32_t * ie, struct Texture *textures, struct Texture *te) { - struct mMesh *newmesh = (struct mMesh *) malloc(sizeof(struct mMesh)); + struct mesh *newmesh = (struct mesh *) malloc(sizeof(struct mesh)); newmesh->vertices = vertices; newmesh->ve = ve; newmesh->indices = indices; @@ -71,7 +71,7 @@ struct mMesh *MakeMesh(struct Vertex *vertices, struct Vertex *ve, return newmesh; } -void setupmesh(struct mMesh *mesh) +void setupmesh(struct mesh *mesh) { // create buffers/arrays glGenVertexArrays(1, &mesh->VAO); diff --git a/source/engine/mesh.h b/source/engine/mesh.h index f0ddb70e..4d30abe1 100644 --- a/source/engine/mesh.h +++ b/source/engine/mesh.h @@ -4,7 +4,7 @@ #include "mathc.h" #include -struct mShader; +struct shader; struct Texture; #define MAX_BONE_INFLUENCE 4 @@ -21,7 +21,7 @@ struct Vertex { float m_Weights[MAX_BONE_INFLUENCE]; }; -struct mMesh { +struct mesh { struct Vertex *vertices; struct Vertex *ve; uint32_t *indices; @@ -31,11 +31,11 @@ struct mMesh { uint32_t VAO, VBO, EBO; }; -struct mMesh *MakeMesh(struct Vertex *vertices, struct Vertex *ve, +struct mesh *MakeMesh(struct Vertex *vertices, struct Vertex *ve, uint32_t * indices, uint32_t * ie, struct Texture *textures, struct Texture *te); -void setupmesh(struct mMesh *mesh); /* Loads mesh into the GPU */ -void DrawMesh(struct mMesh *mesh, struct mShader *shader); -void DrawMeshAgain(struct mMesh *mesh); /* Draws whatever mesh was drawn last */ +void setupmesh(struct mesh *mesh); /* Loads mesh into the GPU */ +void DrawMesh(struct mesh *mesh, struct shader *shader); +void DrawMeshAgain(struct mesh *mesh); /* Draws whatever mesh was drawn last */ #endif diff --git a/source/engine/model.c b/source/engine/model.c index aee7f3c8..5ed402fa 100644 --- a/source/engine/model.c +++ b/source/engine/model.c @@ -8,18 +8,18 @@ #include #include "log.h" -static struct mModel *lastRendered; -static struct mModel *loadedModels[100]; -static struct mModel **lastModel = loadedModels; +static struct model *lastRendered; +static struct model *loadedModels[100]; +static struct model **lastModel = loadedModels; static void processnode(); static void processmesh(); static void processtexture(); -struct mModel *GetExistingModel(const char *path) +struct model *GetExistingModel(const char *path) { - struct mModel **model = loadedModels; + struct model **model = loadedModels; while (model++ != lastModel) { if (!strcmp(path, (*model)->path)) @@ -34,7 +34,7 @@ struct mModel *GetExistingModel(const char *path) } /* TODO: Make this a hash compare for speedup */ -struct mModel *MakeModel(const char *path) +struct model *MakeModel(const char *path) { char *modelPath = (char *) malloc(sizeof(char) * @@ -46,8 +46,8 @@ struct mModel *MakeModel(const char *path) ("Created new model with modelPath %s, from data_path %s and path %s\n", modelPath, DATA_PATH, path); - struct mModel *newmodel = - (struct mModel *) malloc(sizeof(struct mModel)); + struct model *newmodel = + (struct model *) malloc(sizeof(struct model)); newmodel->path = path; loadmodel(newmodel); @@ -56,7 +56,7 @@ struct mModel *MakeModel(const char *path) } // TODO: Come back to this; simple optimization -void draw_model(struct mModel *model, struct mShader *shader) +void draw_model(struct model *model, struct shader *shader) { if (lastRendered != model) { lastRendered = model; @@ -68,7 +68,7 @@ void draw_model(struct mModel *model, struct mShader *shader) } } -void loadmodel(struct mModel *model) +void loadmodel(struct model *model) { YughInfo("Loading model at path %s", model->path); /* @@ -77,7 +77,7 @@ void loadmodel(struct mModel *model) cgltf_data *data = NULL; cgltf_result result = cgltf_parse_file(&options, model->path, &data); - meshes = (struct mMesh*)malloc(sizeof(Mesh)*cgltf_data->meshes_count); + meshes = (struct mesh*)malloc(sizeof(Mesh)*cgltf_data->meshes_count); directory = get_directory_from_path(model->path); diff --git a/source/engine/model.h b/source/engine/model.h index 8430cb9f..aa395bf2 100644 --- a/source/engine/model.h +++ b/source/engine/model.h @@ -1,26 +1,26 @@ #ifndef MODEL_H #define MODEL_H -struct mMesh; -struct mShader; +struct mesh; +struct shader; -struct mModel { - struct mMesh *meshes; - struct mMesh *mp; +struct model { + struct mesh *meshes; + struct mesh *mp; char *directory; const char *path; char *name; }; /* Get the model at a path, or create and return if it doesn't exist */ -struct mModel *GetExistingModel(const char *path); +struct model *GetExistingModel(const char *path); /* Make a Model struct */ -struct mModel *MakeModel(const char *path); +struct model *MakeModel(const char *path); /* Load a model from memory into the GPU */ -void loadmodel(struct mModel *model); +void loadmodel(struct model *model); -void draw_model(struct mModel *model, struct mShader *shader); +void draw_model(struct model *model, struct shader *shader); #endif diff --git a/source/engine/openglrender.c b/source/engine/openglrender.c index 4974e8c1..1615f29f 100644 --- a/source/engine/openglrender.c +++ b/source/engine/openglrender.c @@ -27,21 +27,21 @@ static GLuint depthMapFBO = 0; static GLuint depthMap = 0; const unsigned int SHADOW_WIDTH = 2048, SHADOW_HEIGHT = 2048; -static struct mShader *outlineShader; -static struct mShader *modelShader; -static struct mShader *shadowShader; +static struct shader *outlineShader; +static struct shader *modelShader; +static struct shader *shadowShader; -struct mShader *spriteShader = NULL; -struct mShader *animSpriteShader = NULL; -static struct mShader *textShader; -static struct mShader *diffuseShader; +struct shader *spriteShader = NULL; +struct shader *animSpriteShader = NULL; +static struct shader *textShader; +static struct shader *diffuseShader; struct sFont *stdFont; -static struct mShader *debugDepthQuad; -static struct mShader *debugColorPickShader; -static struct mShader *debugGridShader; -static struct mShader *debugGizmoShader; +static struct shader *debugDepthQuad; +static struct shader *debugColorPickShader; +static struct shader *debugGridShader; +static struct shader *debugGizmoShader; struct mStaticActor *gizmo; @@ -81,7 +81,7 @@ bool renderRefraction = true; bool renderReflection = true; ///// for editing -struct mGameObject *selectedobject = NULL; +struct gameobject *selectedobject = NULL; char objectName[200] = { '\0' }; // object name buffer GLuint debugColorPickBO = 0; diff --git a/source/engine/openglrender.h b/source/engine/openglrender.h index 1d6a75e5..919c17a5 100644 --- a/source/engine/openglrender.h +++ b/source/engine/openglrender.h @@ -6,8 +6,8 @@ struct mCamera; struct window; -extern struct mShader *spriteShader; -extern struct mShader *animSpriteShader; +extern struct shader *spriteShader; +extern struct shader *animSpriteShader; extern struct sprite *tsprite; @@ -32,7 +32,7 @@ extern float far_plane; extern char objectName[]; extern GLuint debugColorPickBO; -extern struct mGameObject *selectedobject; +extern struct gameobject *selectedobject; enum RenderMode { LIT, diff --git a/source/engine/registry.c b/source/engine/registry.c index 65f01316..0e2e8195 100644 --- a/source/engine/registry.c +++ b/source/engine/registry.c @@ -47,12 +47,12 @@ void registry_init() } void register_component(const char *name, size_t size, - void (*make)(struct mGameObject * go, struct component * c), + void (*make)(struct gameobject * go, struct component * c), void (*delete)(void *data), void (*io)(void *data, FILE *f, int read), void(*draw_debug)(void *data), void(*draw_gui)(void *data), - void(*init)(void *data, struct mGameObject * go)) + void(*init)(void *data, struct gameobject * go)) { struct component *c = &components[ncomponent++]; c->name = name; diff --git a/source/engine/registry.h b/source/engine/registry.h index 0b344e8c..b2257dc1 100644 --- a/source/engine/registry.h +++ b/source/engine/registry.h @@ -6,20 +6,20 @@ #include "config.h" -struct mGameObject; +struct gameobject; struct component { const char *name; - void *(*make)(struct mGameObject * go); - void (*io)(void *data, FILE *f, int read); + void *(*make)(struct gameobject * go); /* Called to create the component */ + void (*io)(void *data, FILE *f, int read); /* Pulls data from a component file into the component */ void *data; - struct mGameObject *go; - void (*draw_debug)(void *data); - void (*draw_gui)(void *data); - void (*delete)(void *data); + struct gameobject *go; + void (*draw_debug)(void *data); /* Draw debugging info in editor */ + void (*draw_gui)(void *data); /* Use to draw GUI for editing the component in editor */ + void (*delete)(void *data); /* Deletes and cleans up component */ int id; int datasize; - void (*init)(void *data, struct mGameObject * go); + void (*init)(void *data, struct gameobject * go); /* Inits the component */ }; extern struct component components[MAXNAME]; @@ -27,16 +27,16 @@ extern int ncomponent; void comp_draw_debug(struct component *c); void comp_draw_gui(struct component *c); -void comp_update(struct component *c, struct mGameObject *go); +void comp_update(struct component *c, struct gameobject *go); void registry_init(); void register_component(const char *name, size_t size, - void (*make)(struct mGameObject * go, struct component * c), + void (*make)(struct gameobject * go, struct component * c), void (*delete)(void *data), void (*io)(void *data, FILE *f, int read), void(*draw_debug)(void *data), void(*draw_gui)(void *data), - void(*init)(void *data, struct mGameObject * go)); + void(*init)(void *data, struct gameobject * go)); #endif diff --git a/source/engine/shader.c b/source/engine/shader.c index 98435aaa..27ff7866 100644 --- a/source/engine/shader.c +++ b/source/engine/shader.c @@ -12,14 +12,14 @@ #define SHADER_BUF 10000 -static struct mShader *shaders; +static struct shader *shaders; -struct mShader *MakeShader(const char *vertpath, const char *fragpath) +struct shader *MakeShader(const char *vertpath, const char *fragpath) { if (arrcap(shaders) == 0) arrsetcap(shaders, 20); - struct mShader init = { + struct shader init = { .vertpath = vertpath, .fragpath = fragpath }; shader_compile(&init); @@ -86,7 +86,7 @@ GLuint load_shader_from_file(const char *path, int type) return id; } -void shader_compile(struct mShader *shader) +void shader_compile(struct shader *shader) { YughInfo("Making shader with %s and %s.", shader->vertpath, shader->fragpath); @@ -103,57 +103,57 @@ void shader_compile(struct mShader *shader) glDeleteShader(frag); } -void shader_use(struct mShader *shader) +void shader_use(struct shader *shader) { glUseProgram(shader->id); } -void shader_setbool(struct mShader *shader, const char *name, int val) +void shader_setbool(struct shader *shader, const char *name, int val) { glUniform1i(glGetUniformLocation(shader->id, name), val); } -void shader_setint(struct mShader *shader, const char *name, int val) +void shader_setint(struct shader *shader, const char *name, int val) { glUniform1i(glGetUniformLocation(shader->id, name), val); } -void shader_setfloat(struct mShader *shader, const char *name, float val) +void shader_setfloat(struct shader *shader, const char *name, float val) { glUniform1f(glGetUniformLocation(shader->id, name), val); } -void shader_setvec2(struct mShader *shader, const char *name, mfloat_t val[2]) +void shader_setvec2(struct shader *shader, const char *name, mfloat_t val[2]) { glUniform2fv(glGetUniformLocation(shader->id, name), 1, val); } -void shader_setvec3(struct mShader *shader, const char *name, mfloat_t val[3]) +void shader_setvec3(struct shader *shader, const char *name, mfloat_t val[3]) { glUniform3fv(glGetUniformLocation(shader->id, name), 1, val); } -void shader_setvec4(struct mShader *shader, const char *name, mfloat_t val[4]) +void shader_setvec4(struct shader *shader, const char *name, mfloat_t val[4]) { glUniform4fv(glGetUniformLocation(shader->id, name), 1, val); } -void shader_setmat2(struct mShader *shader, const char *name, mfloat_t val[4]) +void shader_setmat2(struct shader *shader, const char *name, mfloat_t val[4]) { glUniformMatrix2fv(glGetUniformLocation(shader->id, name), 1, GL_FALSE, val); } -void shader_setmat3(struct mShader *shader, const char *name, mfloat_t val[9]) +void shader_setmat3(struct shader *shader, const char *name, mfloat_t val[9]) { glUniformMatrix3fv(glGetUniformLocation(shader->id, name), 1, GL_FALSE, val); } -void shader_setmat4(struct mShader *shader, const char *name, mfloat_t val[16]) +void shader_setmat4(struct shader *shader, const char *name, mfloat_t val[16]) { glUniformMatrix4fv(glGetUniformLocation(shader->id, name), 1, GL_FALSE, val); } -void shader_setUBO(struct mShader *shader, const char *name, unsigned int index) +void shader_setUBO(struct shader *shader, const char *name, unsigned int index) { glUniformBlockBinding(shader->id, glGetUniformBlockIndex(shader->id, name), index); } diff --git a/source/engine/shader.h b/source/engine/shader.h index 42340b6f..e3ea22dd 100644 --- a/source/engine/shader.h +++ b/source/engine/shader.h @@ -3,28 +3,28 @@ #include "mathc.h" -struct mShader { +struct shader { unsigned int id; const char *vertpath; const char *fragpath; }; void shader_compile_all(); -struct mShader *MakeShader(const char *vertpath, const char *fragpath); -void shader_compile(struct mShader *shader); -void shader_use(struct mShader *shader); +struct shader *MakeShader(const char *vertpath, const char *fragpath); +void shader_compile(struct shader *shader); +void shader_use(struct shader *shader); -void shader_setbool(struct mShader *shader, const char *name, int val); -void shader_setint(struct mShader *shader, const char *name, int val); -void shader_setfloat(struct mShader *shader, const char *name, float val); +void shader_setbool(struct shader *shader, const char *name, int val); +void shader_setint(struct shader *shader, const char *name, int val); +void shader_setfloat(struct shader *shader, const char *name, float val); -void shader_setvec2(struct mShader *shader, const char *name, mfloat_t val[2]); -void shader_setvec3(struct mShader *shader, const char *name, mfloat_t val[3]); -void shader_setvec4(struct mShader *shader, const char *name, mfloat_t val[4]); -void shader_setmat2(struct mShader *shader, const char *name, mfloat_t val[4]); -void shader_setmat3(struct mShader *shader, const char *name, mfloat_t val[9]); -void shader_setmat4(struct mShader *shader, const char *name, mfloat_t val[16]); +void shader_setvec2(struct shader *shader, const char *name, mfloat_t val[2]); +void shader_setvec3(struct shader *shader, const char *name, mfloat_t val[3]); +void shader_setvec4(struct shader *shader, const char *name, mfloat_t val[4]); +void shader_setmat2(struct shader *shader, const char *name, mfloat_t val[4]); +void shader_setmat3(struct shader *shader, const char *name, mfloat_t val[9]); +void shader_setmat4(struct shader *shader, const char *name, mfloat_t val[16]); -void shader_setUBO(struct mShader *shader, const char *name, unsigned int index); +void shader_setUBO(struct shader *shader, const char *name, unsigned int index); #endif diff --git a/source/engine/skybox.h b/source/engine/skybox.h index 1d283502..ae9d0189 100644 --- a/source/engine/skybox.h +++ b/source/engine/skybox.h @@ -7,7 +7,7 @@ struct mSkybox { unsigned int VAO; unsigned int VBO; unsigned int id; - struct mShader *shader; + struct shader *shader; }; struct mSkybox *MakeSkybox(const char *cubemap); diff --git a/source/engine/sprite.c b/source/engine/sprite.c index 76d0da0b..2ba6e4cc 100644 --- a/source/engine/sprite.c +++ b/source/engine/sprite.c @@ -10,6 +10,7 @@ #include "gameobject.h" #include #include "stb_ds.h" +#include "log.h" struct TextureOptions TEX_SPRITE = { 1, 0, 0 }; @@ -17,7 +18,7 @@ struct sprite *sprites; static uint32_t quadVAO; -struct sprite *make_sprite(struct mGameObject *go) +struct sprite *make_sprite(struct gameobject *go) { if (arrcap(sprites) == 0) arrsetcap(sprites, 100); @@ -27,15 +28,17 @@ struct sprite *make_sprite(struct mGameObject *go) .size = {1.f, 1.f}, .tex = texture_loadfromfile("ph.png"), .index = arrlen(sprites) }; - sprite_init(&sprite, go); + arrput(sprites, sprite); + return &arrlast(sprites); } -void sprite_init(struct sprite *sprite, struct mGameObject *go) +void sprite_init(struct sprite *sprite, struct gameobject *go) { sprite->go = go; - arrput(sprites, *sprite); + + YughInfo("Added sprite address %p to sprite array %p.", sprite, &arrlast(sprites)); } void sprite_io(struct sprite *sprite, FILE *f, int read) @@ -59,11 +62,16 @@ void sprite_io(struct sprite *sprite, FILE *f, int read) void sprite_delete(struct sprite *sprite) { - for (int i = 0; i < arrlen(sprites); i++) + YughInfo("Attempting to delete sprite, address is %p.", sprite); + YughInfo("Number of sprites is %d.", arrlen(sprites)); + for (int i = 0; i < arrlen(sprites); i++) { + YughInfo("Address of try sprite is %p.", &sprites[i]); if (&sprites[i] == sprite) { + YughInfo("Deleted a sprite."); arrdel(sprites, i); return; } + } } void sprite_draw_all() diff --git a/source/engine/sprite.h b/source/engine/sprite.h index f2de3bc8..a6a45ed0 100644 --- a/source/engine/sprite.h +++ b/source/engine/sprite.h @@ -6,7 +6,7 @@ #include "mathc.h" struct datastream; -struct mGameObject; +struct gameobject; struct Texture; struct timer; @@ -27,13 +27,13 @@ struct sprite { int index; struct Anim2D anim; - struct mGameObject *go; + struct gameobject *go; struct Texture *tex; }; -struct sprite *make_sprite(struct mGameObject *go); +struct sprite *make_sprite(struct gameobject *go); void sprite_delete(struct sprite *sprite); -void sprite_init(struct sprite *sprite, struct mGameObject *go); +void sprite_init(struct sprite *sprite, struct gameobject *go); void sprite_io(struct sprite *sprite, FILE *f, int read); void sprite_loadtex(struct sprite *sprite, const char *path); void sprite_loadanim(struct sprite *sprite, const char *path, struct Anim2D anim); diff --git a/source/engine/static_actor.c b/source/engine/static_actor.c index 0052b623..aa833266 100644 --- a/source/engine/static_actor.c +++ b/source/engine/static_actor.c @@ -9,7 +9,7 @@ static int numShadowCasters = 0; struct mStaticActor *curActor = NULL; -void staticactor_draw_dbg_color_pick(struct mShader *s) +void staticactor_draw_dbg_color_pick(struct shader *s) { for (int i = 0; i < numModels; i++) { shader_setvec3(s, "PickingColor", models[i]->obj.editor.color); @@ -19,7 +19,7 @@ void staticactor_draw_dbg_color_pick(struct mShader *s) } -void staticactor_draw_models(struct mShader *s) +void staticactor_draw_models(struct shader *s) { for (int i = 0; i < numModels; i++) { setup_model_transform(&models[i]->obj.transform, s, 1.f); @@ -27,7 +27,7 @@ void staticactor_draw_models(struct mShader *s) } } -void staticactor_draw_shadowcasters(struct mShader *s) +void staticactor_draw_shadowcasters(struct shader *s) { for (int i = 0; i < numShadowCasters; i++) { setup_model_transform(&shadow_casters[i]->obj.transform, s, 1.f); diff --git a/source/engine/static_actor.h b/source/engine/static_actor.h index 2584d8fe..1a5a93aa 100644 --- a/source/engine/static_actor.h +++ b/source/engine/static_actor.h @@ -6,16 +6,16 @@ #include "shader.h" struct mStaticActor { - struct mGameObject obj; - struct mModel *model; + struct gameobject obj; + struct model *model; char *modelPath; char currentModelPath[MAXPATH]; bool castShadows; }; -void staticactor_draw_dbg_color_pick(struct mShader *s); -void staticactor_draw_models(struct mShader *s); -void staticactor_draw_shadowcasters(struct mShader *s); +void staticactor_draw_dbg_color_pick(struct shader *s); +void staticactor_draw_models(struct shader *s); +void staticactor_draw_shadowcasters(struct shader *s); struct mStaticActor *MakeStaticActor(); void staticactor_gui(struct mStaticActor *sa);