From 5b9422c36f2a9e3a0a4d2bd11ee819343b29b2d5 Mon Sep 17 00:00:00 2001 From: "matthias.gatto" Date: Tue, 25 Jun 2019 22:28:14 +0200 Subject: [PATCH] add -G option that add an orange TGV --- sl.1 | 3 +++ sl.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- sl.h | 27 ++++++++++++++++++++++++- 3 files changed, 91 insertions(+), 4 deletions(-) diff --git a/sl.1 b/sl.1 index aaf3261c..cfd7cabd 100644 --- a/sl.1 +++ b/sl.1 @@ -25,6 +25,9 @@ Little version. .B \-F It flies like the galaxy express 999. .TP +.B \-G +It's French like Oscar. +.TP .B \-c C51 appears instead of D51. .PP diff --git a/sl.c b/sl.c index e549ac8c..6b2a223b 100644 --- a/sl.c +++ b/sl.c @@ -47,6 +47,7 @@ void add_smoke(int y, int x); void add_man(int y, int x); int add_C51(int x); int add_D51(int x); +int add_TGV(int x); int add_sl(int x); void option(char *str); int my_mvaddstr(int y, int x, char *str); @@ -55,6 +56,7 @@ int ACCIDENT = 0; int LOGO = 0; int FLY = 0; int C51 = 0; +int TGV = 0; int my_mvaddstr(int y, int x, char *str) { @@ -75,6 +77,7 @@ void option(char *str) case 'F': FLY = 1; break; case 'l': LOGO = 1; break; case 'c': C51 = 1; break; + case 'G': TGV = 1; break; default: break; } } @@ -96,6 +99,19 @@ int main(int argc, char *argv[]) nodelay(stdscr, TRUE); leaveok(stdscr, TRUE); scrollok(stdscr, FALSE); +/* + * first Non prototype TGV was orange, first 1 was red, but slighty diferent + * but red anyway, so in both case this color "Work" + */ + if (TGV == 1) { + if (has_colors()) { + start_color(); + init_pair(1, COLOR_WHITE, COLOR_BLACK); + init_pair(2, COLOR_YELLOW, COLOR_BLACK); + } else { + TGV = 0; + } + } for (x = COLS - 1; ; --x) { if (LOGO == 1) { @@ -104,12 +120,18 @@ int main(int argc, char *argv[]) else if (C51 == 1) { if (add_C51(x) == ERR) break; } + else if (TGV == 1) { + if (add_TGV(x) == ERR) break; + } else { if (add_D51(x) == ERR) break; } - getch(); - refresh(); - usleep(40000); + /* if (TGV) { */ + /* --x; */ + /* } */ + getch(); + refresh(); + usleep(40000); } mvcur(0, COLS - 1, LINES - 1, 0); endwin(); @@ -199,6 +221,43 @@ int add_D51(int x) return OK; } +int add_TGV(int x) +{ + static char *tgv[TGVPATTERNS][TGVHEIGHT + 1] + = {{TGVSTR0, TGVSTR1, TGVSTR2, TGVSTR3, TGVSTR4, TGVSTR5, TGVSTR6, + TGVWHL1, TGVDEL}, + {TGVSTR0, TGVSTR1, TGVSTR2, TGVSTR3, TGVSTR4, TGVSTR5, TGVSTR6, + TGVWHL2, TGVDEL}}; + static char *vagoon[TGVHEIGHT + 1] + = {TGVVAG0, TGVVAG1, TGVVAG2, TGVVAG3, TGVVAG4, TGVVAG5, TGVVAG6, TGVVAG7, TGVDEL}; + + int y, i, dy = 0; + + if (x < - TGVLENGTH) return ERR; + y = LINES / 2 - 5; + + if (FLY == 1) { + y = (x / 7) + LINES - (COLS / 7) - TGVHEIGHT; + dy = 1; + } + attron(COLOR_PAIR(2)); + for (i = 0; i <= TGVHEIGHT; ++i) { + my_mvaddstr(y + i, x, tgv[((TGVLENGTH + x) / 2) % TGVPATTERNS][i]); + my_mvaddstr(y + i + dy, x + 55, vagoon[i]); + } + attroff(COLOR_PAIR(2)); + + if (ACCIDENT == 1) { + add_man(y + 2, x + 14); + + add_man(y + dy + 3, x + 85); + add_man(y + dy + 3, x + 90); + add_man(y + dy + 3, x + 95); + add_man(y + dy + 3, x + 100); + } + return OK; +} + int add_C51(int x) { static char *c51[C51PATTERNS][C51HEIGHT + 1] diff --git a/sl.h b/sl.h index fbf6938e..8a540478 100644 --- a/sl.h +++ b/sl.h @@ -7,12 +7,37 @@ *======================================== */ +#define TGVHEIGHT 8 +#define TGVLENGTH 114 +#define TGVPATTERNS 2 + +#define TGVSTR0 " ______________ / " +#define TGVSTR1 " ____________/______________|__\\_______ " +#define TGVSTR2 " _____/ |IIIIIIIIIII|_______________________| " +#define TGVSTR3 " __/__/_|_| ______________________________| " +#define TGVSTR4 " __/ | | / |||||||||||| TGV || | " +#define TGVSTR5 " /> [] | | /___________||||||||||||______|| | " +#define TGVSTR6 " \\_==================================================| " +#define TGVWHL1 " |___/==0==0==|_________________________/===0==0==\\| " + +#define TGVWHL2 " |___/0==0==0=|_________________________/=0==0==0=\\| " + +#define TGVDEL " " + +#define TGVVAG0 " ___________ " +#define TGVVAG1 " |_====____|\\________________________________________ " +#define TGVVAG2 "o| |||| ___ | " +#define TGVVAG3 "H|______________|___|_________________________________| " +#define TGVVAG4 "H| |||| |[]| |[]1| [] [ ] [ ] [ ] [ ] | " +#define TGVVAG5 "H|__||||_|__|___|___|_________________________________| " +#define TGVVAG6 "D|==============|===|=================================| " +#define TGVVAG7 " _/ 0==0 |____________________________________/ 0=| " + #define D51HEIGHT 10 #define D51FUNNEL 7 #define D51LENGTH 83 #define D51PATTERNS 6 - #define D51STR1 " ==== ________ ___________ " #define D51STR2 " _D _| |_______/ \\__I_I_____===__|_________| " #define D51STR3 " |(_)--- | H\\________/ | | =|___ ___| "