You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
added button input
This commit is contained in:
3
config.h
3
config.h
@@ -51,6 +51,9 @@ extern char s2d_kerning_table[];
|
||||
#define gdl_head gDisplayListHead
|
||||
extern Gfx *gdl_head;
|
||||
|
||||
#include "src/game/game_init.h"
|
||||
#define CONTROLLER_INPUT gPlayer1Controller->buttonPressed
|
||||
#define CONTROLLER_HELD_INPUT gPlayer1Controller->buttonDown
|
||||
|
||||
// Other games/Homebrew users: change these values
|
||||
|
||||
|
||||
49
s2d_parse.c
49
s2d_parse.c
@@ -12,12 +12,13 @@
|
||||
|
||||
static int s2d_width(const char *str, int line, int len);
|
||||
|
||||
static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf, int len) {
|
||||
static int s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf, int len) {
|
||||
char *p = str;
|
||||
int tmp_len = 0;
|
||||
int orig_x = x;
|
||||
int orig_y = y;
|
||||
int line = 0;
|
||||
char button = '\0';
|
||||
|
||||
if (*p == '\0') return;
|
||||
|
||||
@@ -93,6 +94,35 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
|
||||
// drop_x <<= 2;
|
||||
// drop_y <<= 2;
|
||||
|
||||
break;
|
||||
case CH_BUTTON:
|
||||
if (len - tmp_len == 1) break;
|
||||
if (len - tmp_len > 2) {
|
||||
CH_SKIP(p);
|
||||
break;
|
||||
}
|
||||
button = p[1];
|
||||
CH_SKIP(p);
|
||||
switch (button) {
|
||||
case 'A':
|
||||
if (!(CONTROLLER_HELD_INPUT & A_BUTTON)) return 1;
|
||||
break;
|
||||
case 'B':
|
||||
if (!(CONTROLLER_HELD_INPUT & B_BUTTON)) return 1;
|
||||
break;
|
||||
case 'Z':
|
||||
if (!(CONTROLLER_HELD_INPUT & Z_TRIG)) return 1;
|
||||
break;
|
||||
case 'L':
|
||||
if (!(CONTROLLER_HELD_INPUT & L_TRIG)) return 1;
|
||||
break;
|
||||
case 'R':
|
||||
if (!(CONTROLLER_HELD_INPUT & R_TRIG)) return 1;
|
||||
break;
|
||||
case 'S':
|
||||
if (!(CONTROLLER_HELD_INPUT & START_BUTTON)) return 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case '\n':
|
||||
line++;
|
||||
@@ -144,6 +174,7 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
|
||||
drop_shadow = FALSE;
|
||||
drop_x = 0;
|
||||
drop_y = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void s2d_print(int x, int y, int align, const char *str, uObjMtx *buf) {
|
||||
@@ -173,14 +204,26 @@ void s2d_type_print(int x, int y, int align, const char *str, uObjMtx *buf, int
|
||||
|
||||
len = s2d_strlen(str);
|
||||
|
||||
s2d_snprint(x, y, align, str, buf, *pos);
|
||||
int result = s2d_snprint(x, y, align, str, buf, *pos);
|
||||
if (s2d_timer % 2 == 0) {
|
||||
if (*pos < len) {
|
||||
if (*pos < len && result != 1) {
|
||||
(*pos)++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void s2d_type_print_alloc(int x, int y, int align, const char *str, int *pos) {
|
||||
int len;
|
||||
|
||||
if (s2d_check_align(align) != 0) return;
|
||||
if (s2d_check_str(str) != 0) return;
|
||||
|
||||
len = s2d_strlen(str);
|
||||
|
||||
uObjMtx *b = alloc(sizeof(uObjMtx) * len);
|
||||
s2d_type_print(x, y, align, str, b, pos);
|
||||
}
|
||||
|
||||
static int s2d_width(const char *str, int line, int len) {
|
||||
char *p = str;
|
||||
int tmp_len = 0;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#define BACKGROUND "\x85" // BACKGROUND (w) (h) (alpha)
|
||||
#define SEPARATOR "\x86"
|
||||
#define RESET "\x87"
|
||||
#define BUTTON "\x88"
|
||||
|
||||
#define CH_SCALE '\x80'
|
||||
#define CH_ROT '\x81'
|
||||
@@ -18,6 +19,7 @@
|
||||
#define CH_BACKGROUND '\x85'
|
||||
#define CH_SEPARATOR '\x86'
|
||||
#define CH_RESET '\x87'
|
||||
#define CH_BUTTON '\x88'
|
||||
|
||||
// ASCII standard escape codes
|
||||
#define CH_NEWLINE '\n'
|
||||
|
||||
Reference in New Issue
Block a user