From 7ca5c6275b3de468de5e570cb2f499e422276cc1 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 20 Sep 2017 22:36:30 -0400 Subject: [PATCH] Move Player functions to g_player.c --- .gitignore | 4 ++-- src/g_player.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/m_types.h | 1 + src/main.c | 50 +++++++++++++++----------------------------------- 4 files changed, 66 insertions(+), 37 deletions(-) create mode 100644 src/g_player.c diff --git a/.gitignore b/.gitignore index 3d10cc8..4931fc8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ bin/*.ir codedefs/*.bin -src_crap -src_oldtest doc +fonts sounds sprites textures +src_crap diff --git a/src/g_player.c b/src/g_player.c new file mode 100644 index 0000000..3b40a92 --- /dev/null +++ b/src/g_player.c @@ -0,0 +1,48 @@ +// Copyright © 2017 Project Golan, all rights reserved. +#include "g_object.h" + +#include + +// Extern Functions ----------------------------------------------------------| + +// +// G_Player_Think +// +DGE_Callback void G_Player_Think(DGE_Entity ent) +{ + DGE_Object_RefAdd(ent.id); + + for(;;) + { + if(ent.health <= 0) + break; + + ent.vx = ent.vx + (fixed)DGE_GetInputAxis(0, DGE_Axis_X); + ent.vy = ent.vy - (fixed)DGE_GetInputAxis(0, DGE_Axis_Y); + + DGE_Task_Sleep(0, 1); + } + + DGE_Object_RefSub(ent.id); +} + +// +// G_Player_Create +// +DGE_Entity G_Player_Create(fixed x, fixed y) +{ + DGE_Entity ent = {DGE_Entity_Create(0)}; + + ent.x = x; + ent.y = y; + + G_entty const *type; + if((type = G_ObjDef_GetType("Player"))) { + G_ObjDef_setupEntity(type, ent); + G_ObjDef_createTask (type, ent); + } + + return ent; +} + +// EOF diff --git a/src/m_types.h b/src/m_types.h index a4123cb..e673c0f 100644 --- a/src/m_types.h +++ b/src/m_types.h @@ -12,6 +12,7 @@ // Types ---------------------------------------------------------------------| +typedef unsigned long fract ulfra; typedef short accum fixed; // Fixed typedef long fract lfrac; // Long Fractional typedef size_t msize; // Machine Size diff --git a/src/main.c b/src/main.c index e6af919..bd2ed67 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,5 @@ // Copyright © 2017 Project Golan, all rights reserved. #include "g_object.h" -#include "m_types.h" #include @@ -9,44 +8,21 @@ // Static Functions ----------------------------------------------------------| // -// G_Player_Think +// Draw // -DGE_Callback static void G_Player_Think(DGE_Entity ent) +static void Draw(ulfra delta) { - DGE_Object_RefAdd(ent.id); - - for(;;) - { - if(ent.health <= 0) - break; - - ent.vx = ent.vx + (fixed)DGE_GetInputAxis(0, DGE_Axis_X); - ent.vy = ent.vy - (fixed)DGE_GetInputAxis(0, DGE_Axis_Y); - - DGE_Task_Sleep(0, 1); - } - - DGE_Object_RefSub(ent.id); -} - -// -// G_Player_Create -// -static DGE_Entity G_Player_Create(fixed x, fixed y) -{ - DGE_Entity ent = {DGE_Entity_Create(0)}; - ent.x = x; - ent.y = y; - G_entty const *type; - if((type = G_ObjDef_GetType("Player"))) { - G_ObjDef_setupEntity(type, ent); - G_ObjDef_createTask (type, ent); - } - return ent; + DGE_Font_Bind(DGE_Font_Get(s"myfont")); + DGE_Draw_Text(20, 20, + u8"hello, world!? こんにちは、世界さん!?\n" + u8"¿¡hola, mundo!? 你好,世界!?\n" + u8"γειά σου κόσμε!? hej verden!?"); } // Extern Functions ----------------------------------------------------------| +extern void G_Player_Think(DGE_Entity); + // // main // @@ -66,9 +42,13 @@ void main(void) printf("Loading object definitions...\n"); G_ObjDef_Load("objdefs.dod"); - printf("Ready.\n"); + printf("Creating fonts...\n"); + DGE_Font_Create(s"myfont", "fonts/base.ttf", 24); - G_Player_Create(32, 32); + printf("Registering callbacks...\n"); + DGE_Callback_Register(DGE_CB_Draw, (DGE_CallbackType)Draw); + + printf("Ready.\n"); } // EOF