main.c 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include <graphx.h>
  2. #include <keypadc.h>
  3. #include <compression.h>
  4. #include "gfx/main_gfx.h"
  5. #include "main.h"
  6. #include "objects/player.h"
  7. int main(void){
  8. size_t i;
  9. Scene* scene = new_Scene("Main");
  10. Sprite* sprite;
  11. Object* player = new_Player();
  12. Vector* objects = scene->objects;
  13. Vector* sprites = scene->sprites;
  14. if(!sprites->consume(sprites, new_Sprite(bm1_width, bm1_height, bm1_compressed)) ||
  15. !sprites->consume(sprites, new_Sprite(bm2_width, bm2_height, bm2_compressed)) ||
  16. !sprites->consume(sprites, new_Sprite(bm3_width, bm3_height, bm3_compressed)) ||
  17. !sprites->consume(sprites, new_Sprite(bm4_width, bm4_height, bm4_compressed)) ||
  18. !sprites->consume(sprites, new_Sprite(bm5_width, bm5_height, bm5_compressed)) ||
  19. !sprites->consume(sprites, new_Sprite(bm6_width, bm6_height, bm6_compressed)) ||
  20. !sprites->consume(sprites, new_Sprite(bm7_width, bm7_height, bm7_compressed)) ||
  21. !sprites->consume(sprites, new_Sprite(bm8_width, bm8_height, bm8_compressed)) ||
  22. !sprites->consume(sprites, new_Sprite(bm9_width, bm9_height, bm9_compressed)) ||
  23. !sprites->consume(sprites, new_Sprite(bm10_width, bm10_height, bm10_compressed)) ||
  24. !sprites->consume(sprites, new_Sprite(bm11_width, bm11_height, bm11_compressed)) ||
  25. !sprites->consume(sprites, new_Sprite(bm12_width, bm12_height, bm12_compressed)) ||
  26. !sprites->consume(sprites, new_Sprite(bm13_width, bm13_height, bm13_compressed)) ||
  27. !sprites->consume(sprites, new_Sprite(bm14_width, bm14_height, bm14_compressed)) ||
  28. !sprites->consume(sprites, new_Sprite(bm15_width, bm15_height, bm15_compressed)) ||
  29. !sprites->consume(sprites, new_Sprite(bm16_width, bm16_height, bm16_compressed)) ||
  30. !sprites->consume(sprites, new_Sprite(bm17_width, bm17_height, bm17_compressed)) ||
  31. !sprites->consume(sprites, new_Sprite(bm18_width, bm18_height, bm18_compressed)) ||
  32. !sprites->consume(sprites, new_Sprite(bm19_width, bm19_height, bm19_compressed)) ||
  33. !sprites->consume(sprites, new_Sprite(bm20_width, bm20_height, bm20_compressed)) ||
  34. !sprites->consume(sprites, new_Sprite(bm21_width, bm21_height, bm21_compressed)) ||
  35. !sprites->consume(sprites, new_Sprite(bm22_width, bm22_height, bm22_compressed))
  36. ){
  37. log("Failed to load sprites");
  38. free_Scene(scene);
  39. return 1;
  40. }
  41. if(!objects->consume(objects, player)){
  42. log("Unable to add player to stack");
  43. free_Scene(scene);
  44. return 1;
  45. }
  46. player = objects->get(objects, 0);
  47. player->sprite = sprites->get(sprites, 0);
  48. log("Get max sizes");
  49. #ifdef RESIZE_SPRITES
  50. log("Resizing sprites");
  51. dbg_sprintf(dbgout, "[Player] %d x %d\n", player->sprite->data->width, player->sprite->data->height);
  52. for(i = 0; i < sprites->count(sprites); i++){
  53. sprite = sprites->get(sprites, i);
  54. sprite->resize(sprite, sprite->data->width * SCALE, sprite->data->height * SCALE);
  55. }
  56. dbg_sprintf(dbgout, "[Player] %d x %d\n", player->sprite->data->width, player->sprite->data->height);
  57. #else
  58. player->scale.x = SCALE;
  59. player->scale.y = SCALE;
  60. MAX_WIDTH -= player->width(player);
  61. MAX_HEIGHT -= player->height(player);
  62. #endif
  63. log("Start graphics");
  64. gfx_Begin();
  65. gfx_SetPalette(main_palette, sizeof_main_palette, 0);
  66. gfx_SetDrawBuffer();
  67. log("Main loop");
  68. scene->load(scene);
  69. do{
  70. scene->update(scene);
  71. kb_Scan();
  72. scene->draw(scene);
  73. }while (! (kb_Data[6] & kb_Clear));
  74. log("Freeing memory");
  75. free_Scene(scene);
  76. log("End graphics");
  77. gfx_End();
  78. log("Done");
  79. return 0;
  80. }