nuclear@6: #include "config.h" nuclear@5: #include "game.h" nuclear@5: #include "gbasys.h" nuclear@8: #include "x3d.h" nuclear@8: #include "sincos.h" nuclear@8: #include "fixed.h" nuclear@5: nuclear@5: #define X16INT(x) ((x) << 16) nuclear@5: nuclear@8: static const int32_t poly[] = { nuclear@8: X16INT(80), X16INT(10), 0, nuclear@8: X16INT(140), X16INT(100), 0, nuclear@8: X16INT(40), X16INT(80), 0 nuclear@5: }; nuclear@8: static const short vcount = sizeof poly / sizeof *poly / 3; nuclear@8: nuclear@8: int game_init(void) nuclear@8: { nuclear@8: sincos_init(); nuclear@8: nuclear@8: return 0; nuclear@8: } nuclear@5: nuclear@5: void game_draw(void) nuclear@5: { nuclear@8: unsigned long msec = get_millisec(); nuclear@8: nuclear@5: clear_buffer(back_buffer, 0); nuclear@5: nuclear@8: x3d_load_identity(); nuclear@8: x3d_translate(-itox16(WIDTH / 2), -itox16(HEIGHT / 2), 0); nuclear@8: x3d_rotate((msec / 64) << 16, 0, 0, 65536); nuclear@8: x3d_translate(itox16(WIDTH / 2), itox16(HEIGHT / 2), 0); nuclear@5: nuclear@8: x3d_vertex_array(vcount, poly); nuclear@6: nuclear@8: x3d_color(65536, 65536, 65536); nuclear@8: x3d_draw_arrays(X3D_TRIANGLES, vcount); nuclear@8: nuclear@8: x3d_color(0, 65536, 0); nuclear@8: x3d_draw_arrays(X3D_POINTS, vcount); nuclear@8: nuclear@8: x3d_vertex_array(0, 0); nuclear@6: nuclear@5: flip(); nuclear@5: } nuclear@5: nuclear@5: void game_keyb(int key, int pressed) nuclear@5: { nuclear@5: }