97 lines
2.7 KiB
C
97 lines
2.7 KiB
C
#ifndef SDL_H
|
|
#define SDL_H
|
|
#include "elements.h"
|
|
|
|
int g_fullscreen;
|
|
|
|
SDL_Surface* screen;
|
|
SDL_Surface* menu_area;
|
|
SDL_Surface* tile_area;
|
|
SDL_Surface* sprite_area;
|
|
SDL_Rect tile_area_rect;
|
|
SDL_Rect sprite_area_rect;
|
|
|
|
SDL_Rect update_rect;
|
|
|
|
SDL_Event event;
|
|
struct Font font;
|
|
|
|
struct Font {
|
|
int width;
|
|
int height;
|
|
SDL_Surface *surface;
|
|
};
|
|
void loadFont(struct Font *font, unsigned char *memory, unsigned int length, int width, int height);
|
|
void drawChar(const struct Font *font, SDL_Surface *surface, int x, int y, const char ch);
|
|
void drawString(const struct Font *font, SDL_Surface *surface, int x, int y, const char *string);
|
|
|
|
struct Spritesheet player_sprites;
|
|
struct Spritesheet item_sprites;
|
|
struct Spritesheet equip_sprites;
|
|
struct Spritesheet shadow_sprites;
|
|
struct Spritesheet npc_sprites;
|
|
struct Spritesheet door_sprites;
|
|
struct Spritesheet floor_sprites;
|
|
struct Spritesheet wall_sprites;
|
|
|
|
struct Spritesheet {
|
|
int width;
|
|
int height;
|
|
int s_width;
|
|
int s_height;
|
|
int columns;
|
|
float scale_x;
|
|
float scale_y;
|
|
SDL_Surface *spritesheet;
|
|
SDL_Surface *s_spritesheet;
|
|
};
|
|
int loadSpritesheetFromFile(struct Spritesheet *spritesheet, char *file_name, int width, int height, int columns);
|
|
void freeSpritesheet(struct Spritesheet *spritesheet);
|
|
|
|
void drawElement(const struct Element *element);
|
|
void drawElements();
|
|
void clearElement(const struct Element *element);
|
|
|
|
void addElement(struct Element *element, SDL_Surface *surface);
|
|
void addElementHook(struct ElementList *list, struct Element *element);
|
|
|
|
void handleMouseDown(const SDL_MouseButtonEvent *event);
|
|
void handleMouseUp(const SDL_MouseButtonEvent *event);
|
|
void handleMouseMove(const SDL_MouseMotionEvent *event);
|
|
void handleKeyDown(const SDL_KeyboardEvent *event);
|
|
void handleSpritesheetClick(int x, int y);
|
|
|
|
int getElementWidth(const struct Element* element);
|
|
int getElementHeight(const struct Element* element);
|
|
|
|
void positionElements();
|
|
|
|
void loadGraphicsCallback();
|
|
void loadDataCallback();
|
|
void saveDataCallback();
|
|
void setSetCallback();
|
|
void setIdCallback();
|
|
|
|
void changeKeyCallback();
|
|
void changeValueCallback();
|
|
void deleteElementCallback();
|
|
void deleteInventoryElementCallback();
|
|
void addPairCallback(struct Element *element);
|
|
void addInventoryCallback(struct Element *element);
|
|
void addInventoryElementCallback(struct Element *element);
|
|
void commitChangesCallback(struct Element *element);
|
|
|
|
void loadTile(int set, int id);
|
|
void showSpritesheet();
|
|
void reloadImagePreview();
|
|
|
|
void printConsole(const char *string);
|
|
|
|
void Quit();
|
|
|
|
/* sdl helper */
|
|
Uint32 getpixel(SDL_Surface *surface, int x, int y);
|
|
void putpixel(SDL_Surface *surface, int x, int y, Uint32 pixel);
|
|
SDL_Surface *SDL_ScaleSurface(SDL_Surface *surface, float scale_x, float scale_y);
|
|
#endif
|