Compare commits

...

2 commits

Author SHA1 Message Date
cat
5b256e74cd why did this not commit 2025-06-28 16:01:22 +10:00
cat
fbedd77ed1 finally start on the rewrite 2025-06-28 15:59:51 +10:00
8 changed files with 105 additions and 1 deletions

15
dat.h Normal file
View file

@ -0,0 +1,15 @@
typedef struct Action Action;
typedef struct Image Image;
struct Action {
// step
// click
};
struct Image {
char *name;
int w, h, bpp;
unsigned char *data;
SDL_Surface *sur;
SDL_Texture *tex;
};

7
fns.h Normal file
View file

@ -0,0 +1,7 @@
#define babble(...) SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, __VA_ARGS__)
#define info(...) SDL_Log(__VA_ARGS__)
#define shit(...) SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, __VA_ARGS__)
#define fuck(...) SDL_LogCritical(SDL_LOG_CATEGORY_APPLICATION, __VA_ARGS__)
void free_image(Image *i);
int load_image(Image *i, SDL_Renderer *ren);

59
img.c Normal file
View file

@ -0,0 +1,59 @@
#define STB_IMAGE_IMPLEMENTATION
#define STBI_MALLOC(sz) SDL_malloc(sz)
#define STBI_REALLOC(p,newsz) SDL_realloc(p,newsz)
#define STBI_FREE(p) SDL_free(p)
#include <SDL3/SDL.h>
#include "stb_image.h"
#include "dat.h"
#include "fns.h"
void
free_image(Image *i)
{
if (i->tex) {
babble("destroying texture for image %s...", i->name);
SDL_DestroyTexture(i->tex);
}
if (i->sur) {
babble("destroying surface for image %s...", i->name);
SDL_DestroySurface(i->sur);
}
if (i->data) {
babble("destroying data for image %s...", i->name);
stbi_image_free(i->data);
}
}
int
load_image(Image *i, SDL_Renderer *ren)
{
babble("opening image %s...", i->name);
i->data = stbi_load(i->name, &i->w, &i->h, &i->bpp, 4);
if (!i->data) {
shit("stbi_load: %s", stbi_failure_reason());
goto err;
}
babble("creating surface for image %s...", i->name);
i->sur = SDL_CreateSurfaceFrom(i->w, i->h, SDL_PIXELFORMAT_RGBA32,
i->data, i->w * 4);
if (!i->sur) {
shit("SDL_CreateSurfaceFrom: %s", SDL_GetError());
goto err;
}
babble("creating texture for image %s...", i->name);
i->tex = SDL_CreateTextureFromSurface(ren, i->sur);
if (!i->tex) {
shit("SDL_CreateTextureFromSurface: %s", SDL_GetError());
goto err;
}
babble("created image %s!", i->name);
return 0;
err:
free_image(i);
return -1;
}

4
samply/act.c Normal file
View file

@ -0,0 +1,4 @@
#include <SDL3/SDL.h>
#include "../dat.h"
#include "samply.h"

7
samply/img.c Normal file
View file

@ -0,0 +1,7 @@
#include <SDL3/SDL.h>
#include "../dat.h"
#include "samply.h"
struct Image samply_sprites[] = {
};

6
samply/samply.h Normal file
View file

@ -0,0 +1,6 @@
typedef struct Samply Samply;
struct Samply {
};
extern Image samply_sprites[];

View file

@ -1,4 +1,4 @@
.Dd May 24, 2025
.Dd June 28, 2025
.Dt SLUTPET 6
.Os
.
@ -15,3 +15,9 @@
be a desktop pet thing,
but currently it doesn't actually exist.
Try again later.
.
.Sh INTERNALS
Currently this section is just notes on how I'm going to
try to implement everything. Later this will just be
describing the program's layout, to hopefully make
it easier to figure out how to modify it.

0
slutpet.c Normal file
View file