mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 21:52:48 +00:00
Fix: Scripts not displaying in text viewer
This commit is contained in:
parent
d847944462
commit
20a318a29d
@ -130,9 +130,9 @@ Gm9ScriptCmd cmd_list[] = {
|
|||||||
|
|
||||||
// global vars for preview
|
// global vars for preview
|
||||||
static u32 preview_mode = 0; // 0 -> off 1 -> quick 2 -> full
|
static u32 preview_mode = 0; // 0 -> off 1 -> quick 2 -> full
|
||||||
static u32 preview_color_active = 0;
|
static u32 script_color_active = 0;
|
||||||
static u32 preview_color_comment = 0;
|
static u32 script_color_comment = 0;
|
||||||
static u32 preview_color_code = 0;
|
static u32 script_color_code = 0;
|
||||||
|
|
||||||
static inline bool strntohex(const char* str, u8* hex, u32 len) {
|
static inline bool strntohex(const char* str, u8* hex, u32 len) {
|
||||||
if (!len) {
|
if (!len) {
|
||||||
@ -232,15 +232,15 @@ void set_preview(const char* name, const char* content) {
|
|||||||
} else if (strncmp(name, "PREVIEW_COLOR_ACTIVE", _VAR_NAME_LEN) == 0) {
|
} else if (strncmp(name, "PREVIEW_COLOR_ACTIVE", _VAR_NAME_LEN) == 0) {
|
||||||
u8 rgb[4] = { 0 };
|
u8 rgb[4] = { 0 };
|
||||||
if (strntohex(content, rgb, 3))
|
if (strntohex(content, rgb, 3))
|
||||||
preview_color_active = getle32(rgb);
|
script_color_active = getle32(rgb);
|
||||||
} else if (strncmp(name, "PREVIEW_COLOR_COMMENT", _VAR_NAME_LEN) == 0) {
|
} else if (strncmp(name, "PREVIEW_COLOR_COMMENT", _VAR_NAME_LEN) == 0) {
|
||||||
u8 rgb[4] = { 0 };
|
u8 rgb[4] = { 0 };
|
||||||
if (strntohex(content, rgb, 3))
|
if (strntohex(content, rgb, 3))
|
||||||
preview_color_comment = getle32(rgb);
|
script_color_comment = getle32(rgb);
|
||||||
} else if (strncmp(name, "PREVIEW_COLOR_CODE", _VAR_NAME_LEN) == 0) {
|
} else if (strncmp(name, "PREVIEW_COLOR_CODE", _VAR_NAME_LEN) == 0) {
|
||||||
u8 rgb[4] = { 0 };
|
u8 rgb[4] = { 0 };
|
||||||
if (strntohex(content, rgb, 3))
|
if (strntohex(content, rgb, 3))
|
||||||
preview_color_code = getle32(rgb);
|
script_color_code = getle32(rgb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -845,14 +845,14 @@ void MemTextView(const char* text, u32 len, char* line0, int off_disp, int lno,
|
|||||||
bool ar = !ww && ((int) llen > off_disp + TV_LLEN_DISP);
|
bool ar = !ww && ((int) llen > off_disp + TV_LLEN_DISP);
|
||||||
|
|
||||||
// set text color / find start of comment of scripts
|
// set text color / find start of comment of scripts
|
||||||
u32 color_text = (nln == mno) ? preview_color_active : (is_script) ? preview_color_code : COLOR_TVTEXT;
|
u32 color_text = (nln == mno) ? script_color_active : (is_script) ? script_color_code : COLOR_TVTEXT;
|
||||||
int cmt_start = llen;
|
int cmt_start = llen;
|
||||||
if (is_script && (nln != mno)) {
|
if (is_script && (nln != mno)) {
|
||||||
char* hash = line_seek(text, len, 0, ptr, 0);
|
char* hash = line_seek(text, len, 0, ptr, 0);
|
||||||
for (; *hash != '#' && (hash - ptr < (int) llen); hash++);
|
for (; *hash != '#' && (hash - ptr < (int) llen); hash++);
|
||||||
cmt_start = (hash - ptr) - off_disp;
|
cmt_start = (hash - ptr) - off_disp;
|
||||||
}
|
}
|
||||||
if (cmt_start <= 0) color_text = preview_color_comment;
|
if (cmt_start <= 0) color_text = script_color_comment;
|
||||||
|
|
||||||
// build text string
|
// build text string
|
||||||
snprintf(txtstr, TV_LLEN_DISP + 1, "%-*.*s", (int) TV_LLEN_DISP, (int) TV_LLEN_DISP, "");
|
snprintf(txtstr, TV_LLEN_DISP + 1, "%-*.*s", (int) TV_LLEN_DISP, (int) TV_LLEN_DISP, "");
|
||||||
@ -873,7 +873,7 @@ void MemTextView(const char* text, u32 len, char* line0, int off_disp, int lno,
|
|||||||
if (cmt_start < (int) llen) {
|
if (cmt_start < (int) llen) {
|
||||||
for (int i = 0; i < (int) llen; i++)
|
for (int i = 0; i < (int) llen; i++)
|
||||||
if (i < cmt_start) txtstr[i] = ' ';
|
if (i < cmt_start) txtstr[i] = ' ';
|
||||||
DrawStringF(TOP_SCREEN, x_txt, y, preview_color_comment, COLOR_TRANSPARENT, txtstr);
|
DrawStringF(TOP_SCREEN, x_txt, y, script_color_comment, COLOR_TRANSPARENT, txtstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// colorize arrows
|
// colorize arrows
|
||||||
@ -902,6 +902,13 @@ bool MemTextViewer(const char* text, u32 len, bool as_script) {
|
|||||||
static const char* instr = "Textviewer Controls:\n \n\x18\x19\x1A\x1B(+R) - Scroll\nR+Y - Toggle wordwrap\nR+X - Goto line #\nB - Exit\n";
|
static const char* instr = "Textviewer Controls:\n \n\x18\x19\x1A\x1B(+R) - Scroll\nR+Y - Toggle wordwrap\nR+X - Goto line #\nB - Exit\n";
|
||||||
ShowString(instr);
|
ShowString(instr);
|
||||||
|
|
||||||
|
// set script colors
|
||||||
|
if (as_script) {
|
||||||
|
script_color_active = COLOR_TVRUN;
|
||||||
|
script_color_comment = COLOR_TVCMT;
|
||||||
|
script_color_code = COLOR_TVCMD;
|
||||||
|
}
|
||||||
|
|
||||||
// find maximum line len
|
// find maximum line len
|
||||||
u32 llen_max = 0;
|
u32 llen_max = 0;
|
||||||
for (char* ptr = (char*) text; ptr < (text + len); ptr = line_seek(text, len, 0, ptr, 1)) {
|
for (char* ptr = (char*) text; ptr < (text + len); ptr = line_seek(text, len, 0, ptr, 1)) {
|
||||||
@ -992,9 +999,9 @@ bool ExecuteGM9Script(const char* path_script) {
|
|||||||
if (MAIN_SCREEN != TOP_SCREEN) {
|
if (MAIN_SCREEN != TOP_SCREEN) {
|
||||||
ClearScreen(TOP_SCREEN, COLOR_STD_BG);
|
ClearScreen(TOP_SCREEN, COLOR_STD_BG);
|
||||||
preview_mode = 2; // 0 -> off 1 -> quick 2 -> full
|
preview_mode = 2; // 0 -> off 1 -> quick 2 -> full
|
||||||
preview_color_active = COLOR_TVRUN;
|
script_color_active = COLOR_TVRUN;
|
||||||
preview_color_comment = COLOR_TVCMT;
|
script_color_comment = COLOR_TVCMT;
|
||||||
preview_color_code = COLOR_TVCMD;
|
script_color_code = COLOR_TVCMD;
|
||||||
}
|
}
|
||||||
|
|
||||||
// script execute loop
|
// script execute loop
|
||||||
|
Loading…
x
Reference in New Issue
Block a user