Files
mathwars/api.h
T

70 lines
1.9 KiB
C

#pragma once
#include <SDL2/SDL.h>
#include "System.h"
#include <stdlib.h>
// En tu archivo .h común (ej. mensajes.h)
static inline int message_eq_func(const char *msg, const char *m) {
// Compara carácter por carácter hasta el final de la cadena 'm' o máximo 20
for (int i = 0; i < 20; i++) {
if (msg[i] != m[i]) {
return 0; // No son iguales
}
if (m[i] == '\0') {
return 1; // Llegamos al final de 'm' y coinciden perfectamente
}
}
return 1; // Llegó a 20 caracteres idénticos
}
// Tu macro ahora llama a esta función inline
#define message_eq(m) message_eq_func(msg, m)
enum BlendMode { BlendNone, BlendBlend, BlendAdd, BlendMod };
struct Point {
float x, y;
};
typedef void(*KeyboardHandler)(SDL_Scancode);
void Init();
void Quit();
void LoadImage(const char* filename);
void Flip();
void Clear();
void Blink();
void Draw(int x, int y, int sx, int sy, int w, int h, int angle = 0);
void DrawScale(int x, int y, int sx, int sy, int w, int h, float scale = 1.0f);
void DrawEx(int x, int y, int sx, int sy, int w, int h, float scale, int angle);
void Print(int x, int y, const char* text, int r, int g, int b);
void PrintChar(int x, int y, const char text, int r, int g, int b);
void SetColor(int r, int g, int b);
void DrawPoint(int x, int y);
void DrawLine(int x1, int y1, int x2, int y2);
void Tint(int r, int g, int b);
void SetBlend(BlendMode mode);
void SetAlpha(int alpha);
void RegisterKeyboardHandler(KeyboardHandler handler);
void RegisterSystem(System* system);
void RemoveSystem(System* system);
void Reset();
bool Update();
void RegisterMessage(const char* msg, System* handler);
void SendMessage(const char* msg, int p1 = 0, int p2 = 0, int p3 = 0, int p4 = 0, int p5 = 0);
int* GetMessageParams();
int GetMessageReturn();
void SetMessageReturn(int value);