skunkworks-c/examples/gsa_simple.c

80 lines
1.4 KiB
C

#include "color32.h"
#include "error.h"
#include "gamepad.h"
#include "gsa_map.h"
#include "gsa_text.h"
#include "skip.h"
#include "str.h"
#include <gsa.h>
sw_color32 pal[GSA_PALETTE_SIZE];
void fade_palette(f32 amount) {
i32 i;
for(i = 0; i < GSA_PALETTE_SIZE; ++i) {
palette[i] = sw_color32_mix(SW_COLOR32_BLACK, pal[i], amount);
}
}
bool tick_fade_in();
void test() {
struct sw_skip *skip;
u32 len;
u8 *str;
skip = sw_skip_load("build/gsa.exe");
str = sw_skip_get(skip, "test.c", &len);
sw_log("%i", str);
sw_log("%.*s", len, str);
}
void init() {
i32 x, y;
char *a, *b;
sw_str_split2("hellonyaworld", "nya", &a, &b);
printf("%s - %s\n", a, b);
// test();
gsa_copy_palette_to(pal);
for(y = 0; y < 11; ++y) {
for(x = 0; x < 19; ++x) {
maps[0].tiles[x][y] = 0x1000;
}
}
for(y = 0; y < 11; y += 2) {
maps[0].tiles[0][y] = 0x1101;
maps[0].tiles[1][y] = 0x1102;
maps[0].tiles[0][y + 1] = 0x1201;
maps[0].tiles[1][y + 1] = 0x1202;
maps[0].tiles[17][y] = 0x1101;
maps[0].tiles[18][y] = 0x1102;
maps[0].tiles[17][y + 1] = 0x1201;
maps[0].tiles[18][y + 1] = 0x1202;
}
maps[1].half_tile = true;
font = 0x1010;
gsa_write_text(1, 7, 3, "Game Skunk Advance!!! <3");
gsa_run_loop(tick_fade_in);
}
void tick() {
maps[0].scrollx -= input.x_dir;
maps[0].scrolly -= input.y_dir;
}
bool tick_fade_in() {
static i32 t = 0;
fade_palette(t / 60.f);
++t;
return t <= 60;
}