WWSprite.c 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*****************************************************************************/
  2. /* ここから */
  3. /*****************************************************************************/
  4. #include "WWSpriteP.h"
  5. #include "etc.h"
  6. /*****************************************************************************/
  7. /* メンバ関数の定義 */
  8. /*****************************************************************************/
  9. int WWSprite_GetNumber( WWSprite s) { return (s->number); }
  10. int WWSprite_GetHorizontal(WWSprite s) { return (s->horizontal); }
  11. int WWSprite_GetVertical( WWSprite s) { return (s->vertical); }
  12. int WWSprite_GetPriority( WWSprite s) { return (s->priority); }
  13. int WWSprite_GetClipping( WWSprite s) { return (s->clipping); }
  14. WWPalette WWSprite_GetPalette( WWSprite s) { return (s->palette); }
  15. WWCharacter WWSprite_GetCharacter( WWSprite s) { return (s->character); }
  16. int WWSprite_SetNumber( WWSprite s, int n) { return (s->number = n); }
  17. int WWSprite_SetHorizontal(WWSprite s, int f) { return (s->horizontal = f); }
  18. int WWSprite_SetVertical( WWSprite s, int f) { return (s->vertical = f); }
  19. int WWSprite_SetPriority( WWSprite s, int f) { return (s->priority = f); }
  20. int WWSprite_SetClipping( WWSprite s, int f) { return (s->clipping = f); }
  21. WWPalette WWSprite_SetPalette(WWSprite s, WWPalette p)
  22. { return (s->palette = p); }
  23. WWCharacter WWSprite_SetCharacter(WWSprite s, WWCharacter c)
  24. { return (s->character = c); }
  25. int WWSprite_GetX(WWSprite sprite) { return (sprite->x); }
  26. int WWSprite_GetY(WWSprite sprite) { return (sprite->y); }
  27. int WWSprite_SetPosition(WWSprite sprite, int x, int y)
  28. {
  29. sprite->x = x;
  30. sprite->y = y;
  31. return (0);
  32. }
  33. int WWSprite_GetPixel(WWSprite sprite, int x, int y)
  34. {
  35. WWPalette p;
  36. WWCharacter c;
  37. int pixel;
  38. p = WWSprite_GetPalette(sprite);
  39. c = WWSprite_GetCharacter(sprite);
  40. if (WWSprite_GetHorizontal(sprite)) x = 7 - x;
  41. if (WWSprite_GetVertical( sprite)) y = 7 - y;
  42. pixel = WWCharacter_GetPixel(c, x, y);
  43. pixel = WWPalette_GetMappedColor(p, pixel);
  44. return (pixel);
  45. }
  46. WWSprite WWSprite_Create(int number, int x, int y,
  47. int horizontal, int vertical,
  48. int priority, int clipping,
  49. WWPalette palette, WWCharacter character)
  50. {
  51. WWSprite sprite;
  52. sprite = (WWSprite)malloc(sizeof(_WWSprite));
  53. if (sprite == NULL)
  54. Wonx_Error("WWSprite_Create", "Cannot allocate memory.");
  55. WWSprite_SetNumber(sprite, number);
  56. WWSprite_SetHorizontal(sprite, horizontal);
  57. WWSprite_SetVertical(sprite, vertical);
  58. WWSprite_SetPriority(sprite, priority);
  59. WWSprite_SetClipping(sprite, clipping);
  60. WWSprite_SetPalette(sprite, palette);
  61. WWSprite_SetCharacter(sprite, character);
  62. WWSprite_SetPosition(sprite, x, y);
  63. return (sprite);
  64. }
  65. WWSprite WWSprite_Destroy(WWSprite sprite)
  66. {
  67. if (sprite == NULL) return (NULL);
  68. free(sprite);
  69. return (NULL);
  70. }
  71. int WWSprite_PrintData(WWSprite s, FILE * f)
  72. {
  73. int n;
  74. n = WWSprite_GetNumber(s);
  75. fprintf(f, "\n");
  76. fprintf(f, "sprite[%d] :\tnumber = %d\n", n, WWSprite_GetNumber(s));
  77. fprintf(f, "sprite[%d] :\thorizontal = %s\n",
  78. n, true_false(WWSprite_GetHorizontal(s)));
  79. fprintf(f, "sprite[%d] :\tvertical = %s\n",
  80. n, true_false(WWSprite_GetVertical( s)));
  81. fprintf(f, "sprite[%d] :\tpriority = %s\n",
  82. n, true_false(WWSprite_GetPriority( s)));
  83. fprintf(f, "sprite[%d] :\tclipping = %s\n",
  84. n, true_false(WWSprite_GetClipping( s)));
  85. fprintf(f, "sprite[%d] :\tpalette number = %d\n",
  86. n, WWPalette_GetNumber(WWSprite_GetPalette(s)));
  87. fprintf(f, "sprite[%d] :\tcharacter number = %d\n",
  88. n, WWCharacter_GetNumber(WWSprite_GetCharacter(s)));
  89. fprintf(f, "sprite[%d] :\tx = %d\n", n, WWSprite_GetX(s));
  90. fprintf(f, "sprite[%d] :\ty = %d\n", n, WWSprite_GetY(s));
  91. fflush(f);
  92. return (0);
  93. }
  94. /*****************************************************************************/
  95. /* ここまで */
  96. /*****************************************************************************/
  97. /*****************************************************************************/
  98. /* End of File. */
  99. /*****************************************************************************/